检测PNG图像文件是否为透明图像?我正在寻找一种快速确定PNG图像是否具有透明度的方法。也就是说,图像的任何部分是否半透明或以任何方式显示背景。有谁知道检测这个的简单方法?更新:好的,那么有没有更简单的方法来提取PNG规范并破解代码?为什么不遍历图像中的所有像素并检查它们的alpha值?boolContainsTransparent(Bitmapimage){for(inty=0;y好吧,我仍然完全不明白这个问题,但如果你只是想检查一下,给定的图像是否可以使用透明度功能,你可以使用这个code:Imageimg=Image.FromFile("...",true);if((img.Flags&0x2)!=0){}虽然它不会帮助您确定给定的png文件是否实际使用透明度,它将根据png文件规范指示它具有颜色类型4或6(均支持透明度)。这是一种有效的方法:以二进制形式打开PNG。查找字节26(如果从零开始计数,则为25)。评估char的字节value:2orlower=>absolutelyopaque,3orhigher=>supportstransparency.据我发现,Photoshop生成的文件只在需要时使用3或更高,这使得这是判断何时使用它们的可靠方法。Almostallfilesseemtohave2foropaqueand6foralpha-blended.您还可以考虑检查在这个一般区域中找到的PNG和IHDR字符串,以使您的代码万无一失。以上就是C#学习教程:检测PNG图片文件是否为透明图片?所有分享的内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注---本文来自网络合集,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
