我想知道,我如何才能确定一张图片是否应用了透明效果。在JavaScript或HTML5中有什么方法吗?我有一个base64编码的图像。有没有办法读出透明度信息(alpha通道)。例如,如果我加载一个PNG图像,然后将其转换为base64,然后将其拖放为html5-canvas,现在我如何知道这是否激活了透明效果?谢谢你的好意
发布于 2011-12-12 09:53:20
当您说'drop it to html5-canvas‘时,我假设您是指使用带有'data:’URI方案的图像元素。另外,假设您不想编写javascript代码来解析图像文件。
你可以像这样做伪代码:
create 2 off-screen canvases
color one opaque white and the other opaque black
draw the image on both of them
call getImageData on each canvas, using the image bounds
compare the image data如果图像有任何透明或部分透明的像素,那么这两个画布最终可能至少会有一点不同。一个例外情况是,如果图像启用了透明度功能,但无论如何都是完全不透明的。另一种情况是,如果非不透明像素只是非常轻微的透明-不足以改变白色或黑色背景。但这项技术将捕捉透明度明显的图像。
https://stackoverflow.com/questions/8467864
复制相似问题