请教高手:一个在获取Bitmap的调色板时发生的问题...(50分)

  • 主题发起人 主题发起人 Strangre
  • 开始时间 开始时间
S

Strangre

Unregistered / Unconfirmed
GUEST, unregistred user!
bmp是TBitmap, 已知其PixelFormat = pf8bit,以下程序

ii := GetPaletteEntries(bmp.palette, 0, 256, PalBuf);
if ii <> 256 then jj := GetLastError;

获取bmp的调色板,但有时可以,有时不行(出现概率30%),不行的时候jj = 6,即ERROR_INVALID_HANDLE。

甚为不解,请高手指点。
 
TBitmap的PixelFormat有时并不是很准确.
不如看一下BMP的文件结构,直接读文件
 
To Milpas:
多谢关注。

读BMP文件当然可以,但这里我是会从多种图像文件(如GIF等)中读入并转成TBITMAP的,所以想在内存里直接处理了。当然也可以SaveToFile,再读BMP文件,但那样太麻烦了...

能不能有某种方式可以确定此时的bmp.HPalette是合法的?
 
后退
顶部