首頁  >  文章  >  後端開發  >  詳解PILLOW圖片中加入中文的實例

詳解PILLOW圖片中加入中文的實例

零下一度
零下一度原創
2018-05-18 16:36:135474瀏覽

索引

  • 簡述

  • 準備



  1. 效果圖

    結語

  2. #簡述
  3. #我在使用opencv2或3的時候想要在圖片上加入中文文字,需要去下載Freetype函式庫,編譯好連結到opencv函式庫才能中文的輸出。網路上大部分在圖片中插入中文的教學還是win+vs的設定教學。像我這種win下有環境,linux下有環境的人來說,想要同步程式碼無疑有點麻煩。還好有替代方法,也就是接下來要將的例子pillow。
    準備

    pillow安裝
  4. 不能再簡單了,你可以有以下安裝方式:

pip install pillow

#或conda install pillow

下一個支援中文的字型庫

搜尋關鍵字:ttf 字型。 下載一個你喜歡的字體風格庫,文件的後綴一般為

ttf。我下載了一個微軟雅黑庫,檔案名稱就是msyh.ttf

#範例首先新建一個python檔案:draw_chinese .py
。範例程式碼ipython-notebook風格請去這裡

1.導入庫

詳解PILLOW圖片中加入中文的實例

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

Image

:物件的實例代表一張圖片,可以進行一些大小變換和仿射變換操作

ImageFont

:用來載入準備階段中下載的字體庫檔案

詳解PILLOW圖片中加入中文的實例ImageDraw
: 基於image對象,建立一個可以在

Image

實例上畫出線條、貼文字的物件。

2.建立一張圖片

r​​rreee

######3.載入字體庫###
img = Image.new(mode="RGB",size=(400,150),color=(120,20,20))
#或者从numpy对象中创建也行。可以把opencv的图片转为numpy,通过numpy连接两个图像处理库。
#img = Image.fromarray(numpy_object)
img.show()
###4.新建一個畫布###
path_to_ttf = r'data/msyh.ttf'
font = ImageFont.truetype(path_to_ttf, size=25)
#size 确定一个汉字的大小
###6 .在畫布上肆意妄為###
draw = ImageDraw.Draw( img )
###效果圖##################結語######這個方法不用自己去下載編譯Freetype函式庫, pillow的安裝也很簡單。寫好後的程式碼python2,python3皆可用。跨平台也沒事。算是曲線解決了opencv原生不支援中文字體的問題了吧。 ###pillow這個函式庫可以做一部分opencv的工作,到現在我發現一個比較常用但是pillow沒有的設定就是畫矩形框的時候不能設定矩形框邊線的寬度,需要自己手動實作:每次在原有基礎上增加或減少一個像素點的座標位置重複畫框,達到增加寬度的效果。而opencv只需要給一個width參數就可以了。 ###

以上是詳解PILLOW圖片中加入中文的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn