PIL画图只有黑白色

2023-03-10,,

背景

项目上需要对人工标注的图片上的框进行校对,验证有无漏框、错框等问题。尝试使用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

PIL画图只有黑白色的相关教程结束。

《PIL画图只有黑白色.doc》

下载本文的Word格式文档,以方便收藏与打印。