大家看一下这张图 ( 积分: 100 )

  • 主题发起人 主题发起人 ZYONG
  • 开始时间 开始时间
Z

ZYONG

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.taiee.com/images/3636.bmp

在delphi的Timage中和windows的画图下显示都是不正常的,而在acdsee32或者photoshop中都能显示正常。

why?

补充一下:不要在IE上另存图片,右键单击上面的链接->目标另存为或者把它载下来,谢谢。
 
http://www.taiee.com/images/3636.bmp

在delphi的Timage中和windows的画图下显示都是不正常的,而在acdsee32或者photoshop中都能显示正常。

why?

补充一下:不要在IE上另存图片,右键单击上面的链接->目标另存为或者把它载下来,谢谢。
 
我另存后看得到呢~~~
 
TO:xianguo,
用acdsee32或者photoshop打开对比一下
 
因为这个格式本身并不正常,但acdsee可以兼容,用acdsee打开,然后另存一个bmp就ok了
 
正常,win2003
 
呵呵,不能另存图片,把它载下来。
 
那你就直接用文件打开,看看里面的头出了什么问题,然后自己手动修改成标准的传给TIamge
 
应该是colortable的填充问题,我奇怪的是acdsee32和photoshop都可以正确识别它,而windows却不能,要知道BMP可是微软发布的格式啊?
 
XP系统,完全正常
 
TO:moshengren,
我这里没有XP的系统,帮我测一下这个文件在XP下正常不正常,是不是和上面那个一样。
http://www.taiee.com/images/3636_2.bmp
右键单击上面的链接->目标另存为。

测完马上结帖。
 
的确不一样
 
BMP格式规定了256色BMP的color table size必须是1024字节,可实际上这个图片的color table size只有16字节,转换为RGB(A)后也只有16*4字节,于是要填充960字节到文件中,呵呵,有这么古怪的逻辑,不知道微软是基于什么考虑的。

我观察了ACDSEE32转换出来的图片,其中color table的前64个字节和这个文件是一致的,而以后的960个字节毫无逻辑可言,可以判断是ACDSEE32用IMAGEDATA部份的片断加上第四位00生成的,感觉上应该是没有用处的,于是我将后960个字节全部填充为00,结果可以正常显示。

结帖了,谢谢大家。
 
后退
顶部