Haben Freunde, die C++ Freeimage verwendet haben, hier eine Frage gestellt:
Beim Lesen von PNG-Bildern haben einige PNGs einen Alphakanal (RGBA) und einige PNGs haben RGB. Ich möchte wissen, wie man Freeimage verwendet, um genau zu bestimmen, ob es einen Alphakanal enthält?
Weil ich einige Funktionen wie FreeImage_GetColorType verwende und feststelle, dass die zurückgegebenen Ergebnisse oft falsch sind....
FreeImage_GetBPP()
返回每个像素用多少个bit,RGB就是24bit,RGBA就是32bit,相当于一个通道8bit。如果要全面考虑,用
FreeImage_GetImageType()
获取类型,有一些少见的图片类型不是标准的FIT_BITMAP,比如 FIT_FLOAT,因为float用32bit,所以当bpp=32的时候才有1个通道。