#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