2013-11-22 59 views
2

我正在使用Freeimage.sf.net加载一个png24bit,并希望将其保存为黑/白png。 使用freeimage convert png 24bit to 1bit black/white = gray/white?

FIBITMAP bib = Freeimage.Load("<24bit_png>");

FIBITMAP conv = FreeImage.ConvertColorDepth(bib, FREE_IMAGE_COLOR_DEPTH. FICD_01_BPP_THRESHOLD, (byte) 128);

FreeImage.Unload(bin); bib.SetNull();

FreeImage.Save(FREE_IMAGE_FORMAT.FIF_PNG, conv, "<out_png>", FREE_IMAGE_SAVE_FLAGS.PNG_Z_BEST_COMPRESSION);

FreeImage.Unload(conv); conv.SetNull();

但不黑/白色,因为它是#0b120c /白? 为什么阈值不会创建一个bw-palette?

回答

1

线

FIBITMAP conv = FreeImage.ConvertColorDepth(bib, 
        FREE_IMAGE_COLOR_DEPTH.FICD_01_BPP_THRESHOLD, (byte) 128); 

构建为最常用的颜色的调色板。

FIBITMAP bw = FreeImage.Threshold(biRef, threshold_BW); 

替换它将创建一个真正的黑色和白色图像。