C# Bitmap 对索引像素格式的图片进行Setpixel(具有索引像素格式的图像不支持SetPixel) 解决方案

 最近编写了一个验证码识别软件。其中对png、jpg图片进行二值化处理时,出现了错误:具有索引像素格式的图像不支持SetPixel解决方案。从字面上来看,这说明我对一个具有索引色的图片进行了直接RGB颜色设置,而索引色图片的颜色来自调色板,所以这操作是非法的。看见网上的解决方法都不靠谱,特写此文,以助新手。

      若是C++中,我会将调色板偏移分析,然后对颜色数组进行一下转换。但是在功能强大的.Net中,显然无需这么做:Bitmap对象自带Clone()函数。我只要Clone一个Bitmap对象,并将PixelFormat设置成无索引格式即可。对于我这个软件,我使用的是Format24bppRgb格式(指定格式为每像素24位;红色、绿色和蓝色分量各使用8位)。

1 Bitmap img1 = new Bitmap(paths);
2 Bitmap imgtarget = img1.Clone(new Rectangle(0, 0, img1.Width, img1.Height),PixelFormat.Format24bppRgb);
3 //Do something.

 

原文链接: https://www.cnblogs.com/ybqjymy/p/12898015.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C# Bitmap 对索引像素格式的图片进行Setpixel(具有索引像素格式的图像不支持SetPixel) 解决方案

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/348737

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午5:13
下一篇 2023年3月2日 上午5:13

相关推荐