zoukankan      html  css  js  c++  java
  • PIL画图只有黑白色

    背景

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

  • 相关阅读:
    磁盘冗余 ---RAID磁盘管理
    linux磁盘管理
    linux基础命令
    Apache配置rewrite
    memcache运维整理
    mysql主从配置
    rsync相关整理
    Lua 学习笔记(六)
    Lua 学习笔记(五)
    Lua 学习笔记(四)
  • 原文地址:https://www.cnblogs.com/wjlv/p/15336814.html
Copyright © 2011-2022 走看看