首页 > Python教程 > 正文

详解PILLOW图片中加入中文的实例

原创 2018-05-18 16:36:13 0 1553

索引

  • 简述

  • 准备

  • 示例

  • 效果图

  • 结语

简述

我在使用opencv2或3的时候想要在图片上添加中文文字,需要去下载Freetype库,编译好链接到opencv库中才能中文的输出。网上大部分在图片中插入中文的教程还是win+vs的配置教程。像我这种win下有环境,linux下有环境的人来说,想要同步代码无疑有点麻烦。好在有替代方法,也就是接下来要将的例子pillow。

准备

  1. pillow安装
    不能再简单了,你可以有如下安装方式:
    pip install pillow
    或者
    conda install pillow

  2. 下一个支持中文的字体库
    搜索关键词:ttf 字体。 下载一个你喜欢的字体风格库,文件的后缀一般为ttf。我下载了一个微软雅黑库,文件名就是msyh.ttf

示例

首先新建一个python文件:draw_chinese.py。示例代码ipython-notebook风格请去这里
1.导入库

import cv2from PIL import Image,ImageFont,ImageDrawfrom matplotlib.pyplot import imshowimport numpy as np

Image:对象的实例代表一张图片,可以进行一些大小变换和仿射变换操作
ImageFont:用来加载准备阶段中下载的字体库文件
ImageDraw: 基于image对象,创建一个可以在Image实例上画线条、贴文字的对象。
2.创建一张图片

img = Image.new(mode="RGB",size=(400,150),color=(120,20,20))
#或者从numpy对象中创建也行。可以把opencv的图片转为numpy,通过numpy连接两个图像处理库。
#img = Image.fromarray(numpy_object)
img.show()

新图

3.加载字体库

path_to_ttf = r'data/msyh.ttf'
font = ImageFont.truetype(path_to_ttf, size=25)
#size 确定一个汉字的大小

4.新建一个画布

draw = ImageDraw.Draw( img )

6.在画布上恣意妄为

draw.text(xy=(30,30),text='Hello,南墙已破!',font=font)
img.show()
#当然也可以把这个写好字的图片转换回numpy
#img2array = np.asanyarray(img)

效果图

中文效果

结语

这个方法不用自己去下载编译Freetype库,pillow的安装也很简单。写好后的代码python2,python3均可用。跨平台也没事儿。算是曲线解决了opencv原生不支持中文字体的问题了吧。
pillow这个库可以做一部分opencv的工作,到现在我发现一个比较常用但是pillow没有的设置就是画矩形框的时候不能设置矩形框边线的宽度,需要自己手动实现:每次在原有基础上增加或减少一个像素点的坐标位置重复画框,达到增加宽度的效果。而opencv只需要给一个width参数就可以了。

以上就是详解PILLOW图片中加入中文的实例的详细内容,更多请关注php中文网其它相关文章!

  • 相关标签:pillow 曲线 中文
  • 本文原创发布php中文网 ,转载请注明出处,感谢您的尊重!
  • 相关文章


  • 在Django框架中运行Python应用全攻略
  • 在Python的Django框架中创建和使用模版
  • python获取元素在数组中索引号的方法
  • 浅谈python中截取字符函数strip,lstrip,rstrip
  • 详解PILLOW图片中加入中文的实例
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
    独孤九贱(4)_PHP视频教程

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    • PeterZhu
    • 2017-03-20 22:47:17
    • 点击数(110601)

    独孤九贱(5)_ThinkPHP5视频教程

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    • PeterZhu
    • 2017-05-16 12:03:57
    • 点击数(108468)

    独孤九贱(1)_HTML5视频教程

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    • PeterZhu
    • 2017-03-13 10:15:11
    • 点击数(83305)

    ThinkPHP5实战之[教学管理系统]

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    • PeterZhu
    • 2017-07-24 16:48:56
    • 点击数(82474)

    PHP入门视频教程之一周学会PHP

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    • 零下一度

      PHP开发工程师

    • I wish (that) i could do better
    • 3745篇
      文章总数
    • 1553
      文章总浏览数

    相关视频教程

  • javascript初级视频教程 javascript初级视频教程
  • jquery 基础视频教程 jquery 基础视频教程
  • javascript三级联动视频教程 javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程 独孤九贱(6)_jQuery视频教程
  • 相关视频章节