我听说在进行图层混合时只需要预乘alpha。我怎么知道我的原始图像是预乘alpha?如何知道图像是“预乘Alpha”?
3
A
回答
6
你不能。
您可以检查的唯一情况是不是预乘。要做到这一点,遍历所有的像素,看看是否有一个颜色值比α值高的值允许if(max(col.r,col.g,col.b) > 255*alpha)//not premul
。任何其他情况都不明确,可能或不可能被预乘。你最好猜测的可能是假设他们不像大多数PNG那样。
编辑:实际上,即使我发布的代码也不会工作,因为有很多PNG与白色哑光,所以图像将不得不包含具有0
的alpha值的部分以首先确定哑光颜色。
3
Android Bitmap
存储从带有预乘alpha的PNG加载的图像。通常情况下,您无法从中获得未预先采集的原始颜色。
为了加载图像,而无需RGB渠道被预乘我不得不使用第三方PNGDecoder
从这里:http://twl.l33tlabs.org/#downloads
相关问题
- 1. 预乘alpha混合
- 2. DXT5的预乘alpha值
- 3. 是否有可能知道DOM/JavaScript图像是否具有Alpha通道
- 4. Java:如何知道TIFF图像是Group4?
- 5. OCR预先知道字体的图像
- 6. FLV预乘alpha通道 - 作为swf添加到网页中?
- 7. 如何将图像与可可中另一幅图像的alpha相乘?
- 8. 使用Vector4预乘Alpha组合
- 9. PNG预乘Alpha,iOS模拟器与iPad
- 10. 读出一个FBO与预乘alpha
- 11. 如何知道是否从位图图像视图或资源
- 12. 乘以其alpha的每个像素Open GLES 1.1(预乘)然后反转
- 13. 带“alpha”通道的“直”版图像
- 14. Win32剪贴板和alpha通道图像
- 15. 使用Alpha通道获取CGPath图像
- 16. 添加Alpha通道的图像与PerlMagick
- 17. 如何知道鼠标点击是否在图形图像java
- 18. 如何知道单击的图像
- 19. 如何知道matlab的图像类型
- 20. 如何知道从缩放图像
- 21. 有人有一个优化的函数预乘alpha位图吗?
- 22. 任何人都知道开放源代码做预览图像
- 23. 如何知道图片预览是否被丢弃(或图片是重拍)
- 24. 的iOS/Objective-C的如何知道如果图像是其他
- 25. 如何使用IImgCtx获取带有Alpha通道的图像?
- 26. 如何从PHP中的图像检索Alpha通道?
- 27. 如何使用Pillow从图像中提取Alpha通道
- 28. 如何添加alpha通道到该图像使用ImageMagick
- 29. 如何在Python OpenCV中读取TIFF图像的Alpha通道?
- 30. 如何设置位图预设置Alpha的alpha?
其实*所有* PNG格式不预乘。资料来源:第12.8节,http://www.w3.org/TR/PNG-Rationale.html – 2012-05-25 16:04:43
@MarkRansom不幸的是,并非所有工具都符合此规范。 – clamp 2014-01-28 16:33:11
@clamp那么这些工具在生成PNG输出时会有错误。规范说PNG文件必须*不*预乘alpha。 – 2014-01-28 17:07:08