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

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

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

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航