首页  编辑  

我被BITMAP绊倒了

Tags: /超级猛料/Picture.图形图像编程/图片处理/   Date Created:

萧萧落木(RocWood) <rocwood@sina.com>

最近在研究UO的MUL文件展开,不料在转换BMP格式时被BITMAP绊倒了,

情况如下:

 BMP:TBitmap;

 BMP:=TBitmap.Create;

 BMP.Height:=H;

 BMP.Width:=W;

 BMP.PixelFormat:=pf24bit;

 BMP.HandleType := bmDIB;

我从MUL文件里读取15bit色彩的数据流,转换成RGB格式,按行写入BMP.ScanLine,

最后BMP.SaveToFile,按理说应该对了,可生成的BMP用ACDSEE一看,色彩明显不对,

有的文件的左右两半对调了,怀疑是转换RGB出错,重新BMP.LoadFromFile读入刚刚

生成的BMP,在delphi看里竟然是对的!!!

于是先直接保存成pf15bit格式,正确,再用ACDSEE转换成24bitBMP,比较这个24bit的

BMP和我原先生成的BMP,竟然发现SaveToFile生成的BMP在文件头和数据区中多了48字

节的东东......该死的delphi,真弱智,已经是RGB格式了还保存什么调色版...faint

于是在源程序里显式加入 BMP.IgnorePalette:=True 终于对了:-D

原来一直依赖bitmap类的savetofile,没想到用不用调色板竟然bitmap类自己不会判

断...真伤心,白白花了一天时间调试,还以为是我编错了...

打倒Inprise!!!

--

       心存相信 成就奇迹

There can be miracle when u believe

   瞬间的感动 造就了一生的缘分

   网络的冲动 支撑着第二次人生

---------------------------------------

 奔月逐日的 萧萧落木(Roc.j.Wood)