Pergunta : Converter a imagem a png 8bit transparente na rede do ponto

Eu estou usando o DLL de FreeImage para criar png 8bpp transparente. Eu consegui o seguinte código converter a imagem em C++ using o class= " lineNumbers " >
1 do >

#include “FreeImage.h”
cano principal do int (argc do int, argv do char* []) {
FIBITMAP *hDIB24bpp = FreeImage_Load (FIF_BMP, “test.bmp”, 0);
se (hDIB24bpp) {
// cor-quantiza 24bpp (os resultados em um bitmap 8bpp para ajustar a transparência)
FIBITMAP *hDIB8bpp = FreeImage_ColorQuantize (hDIB24bpp, FIQ_WUQUANT);
// começ a paleta e encontra verde-claro
*Palette de RGBQUAD = FreeImage_GetPalette (hDIB8bpp);
Transparência do BYTE [256];
para (não assinado i = 0; i < 256; i++) {
Transparência [i] = 0xFF;
se (&& do >= 0xFE da paleta [i] .rgbGreen
&& do == 0x00 da paleta [i] .rgbBlue
== 0x00 da paleta [i] .rgbRed) {
Transparência [i] = 0x00;
}
}
// ajustou a tabela do tranparency
FreeImage_SetTransparencyTable (hDIB8bpp, transparência, 256);
// conserva a imagem 8bpp como o png transparente
FreeImage_Save (FIF_PNG, hDIB8bpp, “test.png”, 0);
FreeImage_Unload (hDIB24bpp);
FreeImage_Unload (hDIB8bpp);
}
retorno 0;
} class= >


After de
do erro “não pode implicitamente converter o tipo “System.IntPtr” 'a FreeImageAPI.RGBQUAD” neste paleta RGBQUAD do line
de " = FreeImage.GetPalette (hDIB8bpp); ”. Quando o mesmo código for dado no class= " lineNumbers " >
1 do >

FIBITMAP hDIB24bpp = FreeImage.Load (FREE_IMAGE_FORMAT.FIF_JPEG, “C: /Sunset.jpg”, 0);
            FIBITMAP hDIB8bpp = FreeImage.ColorQuantize (hDIB24bpp, FREE_IMAGE_QUANTIZE.FIQ_WUQUANT);
            Paleta de RGBQUAD = FreeImage.GetPalette (hDIB8bpp);
            transparência do byte [] = byte novo [256];
            para (int i = 0; i < 256; i++)
            {
                transparência [i] = 0xFF;
                se (&& do >= 0xFE da paleta [i] .rgbGreen
                && do == 0x00 da paleta [i] .rgbBlue
                == 0x00 da paleta [i] .rgbRed)
                {
                    transparência [i] = 0x00;
                }
            } class= >
" desobstruído " de
class= do

Resposta : Converter a imagem a png 8bit transparente na rede do ponto

Tentar este código começ os dados reais de RGBQUAD.
1:
2:
*pPalette de RGBQUAD = FreeImage.GetPalette (hDIB8bpp);
Paleta = *pPalette de RGBQUAD;
Outras soluções  
 
programming4us programming4us