背景

项目上需要对人工标注的图片上的框进行校对,验证有无漏框、错框等问题。尝试使用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画图只有黑白色的更多相关文章

  1. PHP imagecolorclosesthwb - 取得与指定的颜色最接近的色度的黑白色的索引

    imagecolorclosesthwb — 取得与指定的颜色最接近的色度的黑白色的索引.高佣联盟 www.cgewang.com 语法 int imagecolorclosesthwb (s res ...

  2. 彩色网页变黑白色CSS代码变黑白色调!

    <style> html { -webkit-filter: grayscale(%); -moz-filter: grayscale(%); -ms-filter: grayscale( ...

  3. 对图片进行X,Y轴的翻转,黑白色转变

    做完了修改图片的程序.用的Winfrom做的.昨天基本完成,记录一下使用的东西. 首先是将需要加载的图片放入picturebox控件,这里用到了openfiledialog 打开文件对话框 strin ...

  4. CAD导出黑白色的pdf(com接口)

    主要用到函数说明: IMxDrawModifyTheColor 接口 用来修改图面所有对象的颜色,把它的颜色都修改成一个指定的值. IMxDrawModifyTheColor::Do 修改颜色,详细说 ...

  5. PIL库参考文档之Image模块

    原文: https://pillow-cn.readthedocs.io/zh_CN/latest/reference/Image.html 中文版参考文档不全,所以自己试着翻译了一下,以下~备注部分 ...

  6. C#在透明窗体WinForm上面画图(电子尺小工具的实现)

    前几天要做一个微信调一调的外挂,里面用到了尺子测量距离,然后就自己下载了一个电子尺,最近要升级我的跳一跳外挂,然后就准备自己做一个电子尺,嵌入到我的外挂里面,在嵌入到我的外挂之前,我自己做了一个完整版 ...

  7. 关于PIL库Image模块的一些测试代码

    为了加深理解,写了一些代码测试,在这里记录一下吧: 关于图片的模式问题,之前做过笔记,有“1”,“L”,"P","RGB","RGBA",& ...

  8. [Keras] mnist with cnn

    典型的卷积神经网络. Keras傻瓜式读取数据:自动下载,自动解压,自动加载. # X_train: array([[[[ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0. ...

  9. UWP中的Direct2D

    介绍 DirectX一直是Windows平台中高性能图形的代名词,自Win7开始,微软又推出了Direct2D技术,包装于Direct3D,但专注于2D图形,并且准备取代GDI这样的传统2D图形技术. ...

  10. MATLAB命令大全

    一.常用对象操作:除了一般windows窗口的常用功能键外.1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看.2.who 可以查看当前工作空间变量名, whos ...

随机推荐

  1. 狄利克雷过程(Dirichlet Process)

    先从狄利克雷过程的motivation开始说起,如果我们有一些数据,这些数据是从几个高斯分布中得出的,也就是混合高斯模型中得出的,比如下图这样 但是呢,我们并不知道混合高斯模型中到底有多少个高斯分布, ...

  2. RabbitMQ-00-Windows10安装RabbitMQ及安装使用过程中遇到的一些问题

    Window系统安装教程 安装参考博客:https://blog.csdn.net/spl545056/article/details/81392015 重装RabbitMQ时遇到的问题 安装提示成功 ...

  3. 去除Bam文件中的PCR 重复

    1.使用samtools 去除重复 samtools sort -n -@ 20 file.bam |samtools fixmate -m -@20 - - |samtools sort -@ 20 ...

  4. go-fastdfs断点续传功能

    1)安装go-fastdfs: 可以从GitHub上获取go-fastdfs的源码,然后使用go get命令安装: go get github.com/sjqzhang/go-fastdfs 2)安装 ...

  5. Pytorch实战学习(九):进阶RNN

    <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili Advance RNN 1.RNN分类问题 判断数据集中的每个名字所属的国家,共有18个国家类别 2.网络结构 ①基础R ...

  6. webpack5用url-loader(file-loader)处理图片和img-loader压缩图片

    webpack-cli 4.0的版本和 webpack-dev-server 3.11.0的版本不兼容,只能用webpack@5.0 + webpack-cli@3.3.12 + webpack-de ...

  7. MySQL---MGR保姆版

    一.环境清理: 三台机器都做: 1.修改主机名 2.修改/etc/hosts文件 3.关闭和禁用防火墙 4.关闭和禁用SELinux 5.生成密钥对 6.传输密钥对 7.验证免密登陆 yum remo ...

  8. GCC gcc 和g++

    GCC:GNU Compiler Collection(GUN编译器集合),它可以编译C,C++,Java,Fortran,Pascal,Object-C等语言. gcc是GCC中的GUN C Com ...

  9. springcloud(七) - Sleuth链路追踪

    服务跟踪的具体步骤 sleuth系统自动埋点并把数据发给zipkin,ziplin负责存储和展示数据. 具体实现 cmd执行jar 代码执行(server.licent都需要配) <!-- 添加 ...

  10. python性能测试工具locust

    1.概述: 1.我们对目前比较流行的几款压测工具进行了调研.Jmeter与LoadRunner基于多线程实现并发,多线程由操作系统决定,由于上下文切换频繁.内核调度频繁,单台机器很难产生大量线程并发. ...