2013-11-22 58 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); 

替換它將創建一個真正的黑色和白色圖像。