真是见鬼了,不由你不信 关于photoshop画的bmp在TImage中读不出的唯一例外情况 ( 积分: 10 )

  • 主题发起人 主题发起人 墨剑
  • 开始时间 开始时间

墨剑

Unregistered / Unconfirmed
GUEST, unregistred user!
最近想做透明的图像,知道photoshop的画出的32位bmp可以有这功能,其中24位是颜色,8位是Alpha通道. 于是随便建立了一张图,拉个圆抠调中间一块,然后魔棒选择抠去的这个圆,建立选区,则就建立了一个Alpha通道了. 最后保存为带Alpha通道的32位windows bmp图形.
但是最奇怪的是,我在delphi中用Timage控件打不开这张图,提示 stream read error.
试了好多次都不行. 后来我就重新画一张,分辨率设为800*600(我原先画的是640*480), 这下居然搞定. 奇怪之下,建了无数各种分辨率的图形,除了640*480的打不开以为,其他的都可以.我又换了两台机器,装了photoshop来测试,都是一样的.

640*480 这个分辨率到底有什么特殊性? 是不是photoshop的一个bug?
在做个过程中,我把图片即使把宽度加1改为641*480,都是正常的,但改回640*480就不行了.

640*408? 到底是什么
 
哦,这个我去试试,没碰到过
 
没错,就是 ps 的一个 Bug.
解决方法是拉进画图里 画一笔 ctrl+s, ctrl+z, ctrl+s
 
这样当然不行,因为在画图里面操作一下,就会丢失alpha通道的信息了.
 
那惟有象我一样自己写个程序处理下了.好象主要是PS没有按照长宽 Mod 4 = 0的原则.
 
是呀,就是这个问题. 今天看了bmp的标准结构,在用ultraedit好好看了生成的图片的数据,的确事这样.
但是除了delphi中处理,用其他软件打开都是正常的.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部