#include « FreeImage.h »
force d'international (argc d'international, argv de char* []) {
FIBITMAP *hDIB24bpp = FreeImage_Load (FIF_BMP, « test.bmp », 0) ;
si (hDIB24bpp) {
// couleur-quantifient 24bpp (les résultats dans une carte binaire 8bpp pour placer le transparent)
FIBITMAP *hDIB8bpp = FreeImage_ColorQuantize (hDIB24bpp, FIQ_WUQUANT) ;
// obtiennent la palette et trouvent vert clair
*Palette de RGBQUAD = FreeImage_GetPalette (hDIB8bpp) ;
Transparent de BYTE [256] ;
pour (non signé I = 0 ; i < 256 ; i++) {
Transparent [I] = 0xFF ;
si (&& de >= 0xFE de palette [I] .rgbGreen
&& du == 0x00 de la palette [I] .rgbBlue
== 0x00 de la palette [I] .rgbRed) {
Transparent [I] = 0x00 ;
}
}
// a mis la table de transparence
FreeImage_SetTransparencyTable (hDIB8bpp, transparent, 256) ;
// sauvent l'image 8bpp en tant que png transparent
FreeImage_Save (FIF_PNG, hDIB8bpp, « test.png », 0) ;
FreeImage_Unload (hDIB24bpp) ;
FreeImage_Unload (hDIB8bpp) ;
}
retour 0 ;
} class= >