Graphics.FromImage报错“Graphics object cannot be created from an image that has an indexed pixel ...”

  测试OCR模块PaddleSharp过程中,为了在图片中绘制出包含文本块的矩形,用Graphics.FromImage函数获取图片的绘图对象。使用之前文章中的图片测试时,jpg图片可以正常绘制,但是测试参考文献1中png格式的身份证图片时,程序报如下错误:
  A Graphics object cannot be created from an image that has an indexed pixel format. (Parameter ‘image’)

  从MSDN中看到,调用Graphics.FromImage函数时存在例外,图片具有索引像素格式或格式未定义时会抛异常,本文遇到的错误中提到的indexed pixel即索引像素,因此应该是测试的图片格式不支持Graphics.FromImage。
在这里插入图片描述

  参考文献3介绍了索引像素格式图片,其常见格式为gif和png,主要目的是降低图片大小。参考文献4中给出了索引像素格式图片创建Graphics对象的常见处理方式,即将图片复制到另外的Bitmap对象后再使用 Graphics。
  对于本文的问题,可以采用两种方式,一种是通过程序方式将png图片转换为bmp或jpg格式后再绘制包含文本块的矩形,另一种是手动将图片另存为jpg或bmp格式。
  由于测试图片中报错的只有一个图片,简单起见,直接用画图板将其另存为jpg,再运行程序,即可正常创建Graphics对象并绘制包含文本块的矩形,效果图下图所示(测试图形来源于参考文献1)。

在这里插入图片描述

参考文献:
[1]http://news.sohu.com/a/524033869_121124363
[2]https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.graphics.fromimage?redirectedfrom=MSDN&view=dotnet-plat-ext-6.0#System_Drawing_Graphics_FromImage_System_Drawing_Image_
[3]https://wenku.baidu.com/view/9db4726b757f5acfa1c7aa00b52acfc789eb9f99.html
[4]https://blog.csdn.net/w6579106/article/details/115865396

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值