Board logo

标题: [求助] 蛋疼的问个BMP和PNG互相转换后alpha有误差的问题…… [打印本页]

作者: 匿名    时间: 2012-02-03 15:34     标题: 蛋疼的问个BMP和PNG互相转换后alpha有误差的问题……

最近再用PS合成竹子社游戏  禁断の病棟  立绘,发现直接用pristecv提取文件为PNG格式,然后用XnView(版本 1.98.5)再转换为BMP格式,这时候的alpha与直接提取出来的BMP文件的alpha略有不同(具体方法是用PS CS5打开两张BMP,将两图的alpha复制粘贴为同一张图的两个图层,图层混合模式选差值,发现图像不是全黑 = =)。
后来再蛋疼尝试只用XnView将一张BMP文件转换成PNG,再转换回BMP,发现alpha也有改变,只是误差比用pristecv转换的小一些……
PNG不是无损格式吗?为什么会出现这种情况,这是由于我某些东西没有设置对还是怎么一回事,用PS处理alpha会不会也产生误差……有没有工具是完全转换没有误差的……
作者: 匿名    时间: 2012-02-03 15:55

貌似有些说错,用pristecv提取文件为PNG格式再转换为BMP  与  直接用XnView转化为png再转换回bmp无差别,应该与pristecv无关系……
作者: haibara    时间: 2012-02-03 19:41

上传下png
作者: 匿名    时间: 2012-02-04 20:10

我发现是我错了,主要是将alpha复制粘贴到RGB模式的图像里才出现的这种问题……
顺便求教查看两张图片的alpha是否相同的办法……
作者: haibara    时间: 2012-02-04 22:25

引用:
原帖由 Guest 于 2012-02-04 20:10 发表
我发现是我错了,主要是将alpha复制粘贴到RGB模式的图像里才出现的这种问题……
顺便求教查看两张图片的alpha是否相同的办法……
分离出alpha hash一下就可
作者: 匿名    时间: 2012-02-05 21:08

hash不是完全了解,但是给我的感觉应该是hash相同文件必然相同,hash不同文件的内容未必不同。想知道如果经过数次变换图片尺寸(通常是800×600先变为1000×600,再变回去),alpha的hash会变吗?如果变了该如何验证……
作者: haibara    时间: 2012-02-05 22:11

引用:
原帖由 Guest 于 2012-02-05 21:08 发表
hash不是完全了解,但是给我的感觉应该是hash相同文件必然相同,hash不同文件的内容未必不同。想知道如果经过数次变换图片尺寸(通常是800×600先变为1000×600,再变回去),alpha的hash会变吗?如果变了该如何验证…… ...
不懂你的问题

如果hash变了,即验证了这2个alpha不一样
作者: 匿名    时间: 2012-02-05 22:36

有个人为了防止渣雷等偷偷上传,每次下载完都会先修改文件的一个字节,然后再改回去,说是这样就能改变hash值,但是文件仍然照常使用。
我的疑问就是,如果alpha经过类似步骤之类的话,还有什么办法验证吗?
作者: 646757417    时间: 2012-02-05 23:19

引用:
原帖由 Guest 于 2012-02-05 22:36 发表
有个人为了防止渣雷等偷偷上传,每次下载完都会先修改文件的一个字节,然后再改回去,说是这样就能改变hash值,但是文件仍然照常使用。
我的疑问就是,如果alpha经过类似步骤之类的话,还有什么办法验证吗? ...
就是对hash值,你的意思是啥?如果是无损转换,而且你操作没搞错啥的话,png和bmp之间转换可能对hash值产生影响(png和bmp版alpha),但alpha本身没有损失。
作者: haibara    时间: 2012-02-05 23:31

引用:
原帖由 Guest 于 2012-02-05 22:36 发表
有个人为了防止渣雷等偷偷上传,每次下载完都会先修改文件的一个字节,然后再改回去,说是这样就能改变hash值,但是文件仍然照常使用。
我的疑问就是,如果alpha经过类似步骤之类的话,还有什么办法验证吗? ...
因为你的问题是如何确认2个图片alpha是否相同,所以用hash就可

无论真彩的bmp.png怎么转换,过程有几步,只要按照正确的方法,必定数据一样,即hash一样

当然调色板的bmp.png相互转换,alpha可能会有转换问题(这是格式上限制,png调色板比bmp高级的关系),这比较少见

[ 本帖最后由 haibara 于 2012-02-05 23:35 编辑 ]
作者: 匿名    时间: 2012-02-06 00:50

好吧,有些东西可能是我自己理解失误,我回去再问问我老师去 = =
作者: 890508    时间: 2012-02-06 01:54

引用:
原帖由 Guest 于 2012-02-05 21:08 发表
hash不是完全了解,但是给我的感觉应该是hash相同文件必然相同,hash不同文件的内容未必不同。想知道如果经过数次变换图片尺寸(通常是800×600先变为1000×600,再变回去),alpha的hash会变吗?如果变了该如何验证…… ...
lz完全理解错误hash了,hash不同则文件一定不同,hash相同文件仍然可能不同,因为输入域远大于输出域
作者: 匿名    时间: 2012-02-06 04:13

引用:
原帖由 890508 于 2012-02-06 01:54 发表

lz完全理解错误hash了,hash不同则文件一定不同,hash相同文件仍然可能不同,因为输入域远大于输出域
多谢菊苣指教,这个地方的确完全理解错了,我就是个笨蛋啊
作者: sfsuvival    时间: 2012-02-09 00:28

用2种以上的hash可减少碰撞机会
如md5+sha1
基本上如果两个文件的md5和sha1值也相同
可以看作相同文件
引用:
原帖由 haibara 于 2012-02-05 23:31 发表


因为你的问题是如何确认2个图片alpha是否相同,所以用hash就可

无论真彩的bmp.png怎么转换,过程有几步,只要按照正确的方法,必定数据一样,即hash一样

当然调色板的bmp.png相互转换,alpha可能会有转换问题(这是格式上限制,p ...
之前bmp是不支持透明色板的
但M$正式对bmp增加了alpha的支持后留下了尾巴
没有清楚说明这点
现在大多软件都不能读写有透明色板的bmp
8位透明色板的png转32位bmp才能保持无损

还有一个问题
不是所有软件都正确支持8位透明色板的png
如PS到现在最新的CS5.1也不能
XnView也是最近才正确支持的




欢迎光临 YUKI 飛雪之城 (https://yukict.com/bbs/) Powered by Discuz! 6.0.0