国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python在圖片中添加文字的兩種方法

2019-11-25 16:12:55
字體:
來源:轉載
供稿:網友

本文主要介紹的是利用Python在圖片中添加文字的兩種方法,下面分享處理供大家參考學習,下來要看看吧

一、使用OpenCV

在圖片中添加文字看上去很簡單,但是如果是利用OpenCV來做卻很麻煩。OpenCV中并沒有使用自定義字體文件的函數,這不僅意味著我們不能使用自己的字體,而且意味著他無法顯示中文字符。這還是非常要命的事情。而且他顯示出來的文字位置也不太好控制。比如下面的代碼,他想做的僅僅是顯示數字3:

代碼:

#coding=utf-8import cv2import numpy as npfrom pylab import *%matplotlib inlinefont=cv2.FONT_HERSHEY_SIMPLEX#使用默認字體im=np.zeros((50,50,3),np.uint8)#新建圖像,注意一定要是uint8img=cv2.putText(im,'3',(0,40),font,1.2,(255,255,255),2)#添加文字,1.2表示字體大小,(0,40)是初始的位置,(255,255,255)表示顏色,2表示粗細imshow(img)

結果:

我么可以發現文字出現的位置并不怎么好把握,初始的坐標默認是指左下角的坐標,不怎么方便。而且顯示出文字以后,我們不好掌握他實際占的位置和大小。

不過有一點方便的是,我們可以隨意改變他的粗細,而不用更換字體。這一點是下面使用PIL進行繪圖所不具備的優點。

二、使用PIL

同樣為了生成數字3,下面是使用PIL進行的操作:

代碼:

import Image,ImageFont,ImageDrawimport numpy as npfrom pylab import *%matplotlib inlinefont = ImageFont.truetype('3.ttf',50) #使用自定義的字體,第二個參數表示字符大小im = Image.new("RGB",(50,50))      #生成空白圖像draw = ImageDraw.Draw(im)         #繪圖句柄x,y=(0,0)                  #初始左上角的坐標draw.text((x,y), '3', font=font)    #繪圖offsetx,offsety=font.getoffset('3')  #獲得文字的offset位置width,height=font.getsize('3')     #獲得文件的大小im=np.array(im)cv2.rectangle(im,(offsetx+x,offsety+y),(offsetx+x+width,offsety+y+height),(255,255,255),1)#繪出矩形框imshow(im)

結果:

我們可以發現,PIL支持使用自定義的字體文件,而且能夠提供字體所占位置的詳細信息,我們可以精確的確定文字所占的位置,在應用中特別有用。唯一的不足就是他不能改變字體的粗細(畢竟這用的是字體模板)。

實際應用中看來還要在這兩種方法中擇優使用。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家學習或者使用python能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永仁县| 瓦房店市| 博野县| 塔城市| 集贤县| 南京市| 调兵山市| 新田县| 栾城县| 镇雄县| 南阳市| 北海市| 隆子县| 托克逊县| 隆安县| 田阳县| 扎赉特旗| 长汀县| 文登市| 车险| 钦州市| 武山县| 沾益县| 武宁县| 资溪县| 荆门市| 花莲市| 龙南县| 年辖:市辖区| 二手房| 通山县| 当雄县| 宽甸| 平安县| 犍为县| 营口市| 武陟县| 广河县| 温州市| 静宁县| 白水县|