背景

项目上需要对人工标注的图片上的框进行校对,验证有无漏框、错框等问题。尝试使用opencv把框信息画出来,但是中文无法写到图片上,么得办法,只能转战PIL。但是用PIL之后出现部分图画出来的框写出来的字只有黑白色。因为第一次使用这个库,对图像知识不了解,网上查了资料解决了。

原因

原图的mode是L,所以无论如何设置draw.ink都无法画出彩色的图像框。

解决

转换原图为RGB格式即可。

部分代码如下:

with Image.open(src_pic) as image:
if image.mode != "RGB": # 这个判断太重要了,要是灰度图片不转换的话文字颜色、框颜色都不会生效
image = image.convert("RGB")
draw = ImageDraw.Draw(image)
ziti = r'C:\Windows\Fonts\simkai.ttf'
zihao = 50
font = ImageFont.truetype(ziti, zihao)
# 画矩形:起止坐标点,线宽度,线颜色
draw.rectangle([(35, 87), (362, 453)], width=6, outline='blue')
# 写文本:起点坐标,内容,颜色,字体
draw.text(((40, 90), '这是文本', (255, 0, 0), font=font)

关于图像的模式mode参考文档:https://blog.csdn.net/u013066730/article/details/102832597

最新文章

  1. poj 3984:迷宫问题(广搜,入门题)
  2. mysql笔记04 MySQL高级特性
  3. javascript实现数据结构:串--堆分配存储表示
  4. Android ViewPager的简单实现
  5. 宏page_t
  6. wsdlLocation可以写成项目的相对路劲吗
  7. SQL Server 事务嵌套
  8. MySQL root密码重置报错:mysqladmin: connect to server at 'localhost' failed的解决方案!
  9. 【java基础】==与equals()方法比较
  10. Linux0.11 创建进程的过程分析--fork函数的使用
  11. mui上拉刷新+下拉加载
  12. 2015沈阳站-Meeting 最短路
  13. python杂记二
  14. XproerIM2-更新-2017-6-28
  15. Luogu P3783 [SDOI2017]天才黑客
  16. 【洛谷P1082】同余方程
  17. 堆叠箱子(基础dp)
  18. mfc CIPAddressCtrl控件
  19. RabbitMQ入门_15_访问控制
  20. 61.volatile关键字

热门文章

  1. 微信小程序中如何把数组从一个页面传到另一个页面,并且获取数据
  2. uni-app学习笔记之----页面跳转
  3. Asp.Net Core上传大文件请求体限制设置
  4. 【离线数仓】数据仓库DW图解
  5. Array方法学习总结
  6. 《这里分别闭合离合器Zm和Z2会分别有什么效果》 回复
  7. eFuse技术
  8. 如何完整卸载catia?
  9. Vue 使用Lodop进行标签(条码)打印
  10. CAD怎么删除图块注释?删除CAD图块注释步骤