Python實(shí)現(xiàn)圖片添加文字
在工作中有時(shí)候會(huì)給圖上添加文字,常用的是PS工具,不過我想通過代碼的方式來給圖片添加文字。
需要使用的Python的圖像庫:PIL.更加詳細(xì)的知識(shí)點(diǎn)如下:
Imaga模塊:用來創(chuàng)建,打開,保存圖片文件
- new(path):用來創(chuàng)建一個(gè)新的圖片文件.該文件位于path所在的路徑中。。打開后返回Image類型的圖片。
- open(path):用來打開已經(jīng)存在的圖片文件.該文件位于path所在的路徑中。打開后返回Image類型的圖片。
- save(path):用來把創(chuàng)建或者打開的圖片保到path所在的路徑中。
ImageDraw模塊:用來在圖片上繪制點(diǎn),線,圖形和文字。
- Draw(Image):用來返回一個(gè)ImageDraw類型的圖片,它的參數(shù)為Image類型的圖片。
- text((x,y),str,…):用來在圖片上添加文字,文字位置x,y所在坐標(biāo)處,文字內(nèi)容為str,其它參數(shù)可以控制文字字體和顏色。
下面是完整的代碼,請(qǐng)參考:
from PIL import Image,ImageDraw
def addText(img,string):
size = img.size
width = size[0] - 20
high = size[1] - 20
lenth = len(string)*3
draw = ImageDraw.Draw(img)
draw.text((width-lenth,high),string,fill='black')
oriImg.show()
oriImg.save(path)
path = input("Please input the image file with path")
try:
print("path: "+path)
oriImg = Image.open(path)
addText(oriImg,"good")
except IOError:
print("can't' open the file,check the path again")
newImg = Image.new('RGBA',(320,240),'white')
newImg.save(path)
關(guān)于代碼做以下說明:
在代碼中,會(huì)創(chuàng)建一個(gè)320*240和圖片,背景為白色,里面什么也沒有。
把文字和圖片邊的寬度設(shè)置成了20,這個(gè)可以自己定義。另外,字符占用的長(zhǎng)度乘以3是個(gè)經(jīng)驗(yàn)值,也可以修改。
在圖片中添加的文字為'good',這個(gè)可以自己定義。
下面是程序的運(yùn)行結(jié)果:
PS:第一次運(yùn)行時(shí),如果沒有圖片,會(huì)有以下提示,同時(shí)會(huì)創(chuàng)建一個(gè)新的圖片。
Please input the image file with pathH:\download\test.png(this is content of input )
path: H:\download\test.png
can't' open the file,check the path again
以后再次運(yùn)行時(shí),就使用系統(tǒng)默認(rèn)的圖片瀏覽器打開一個(gè)320*240和圖片,圖片右下角有黑色的文字:'good‘ 。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python基礎(chǔ)學(xué)習(xí)之奇異的GUI對(duì)話框
今天跨進(jìn)了GUI編程的園地,才發(fā)現(xiàn)python語言是這么的好玩,文中對(duì)GUI對(duì)話框作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05
Python使用matplotlib實(shí)現(xiàn)的圖像讀取、切割裁剪功能示例
這篇文章主要介紹了Python使用matplotlib實(shí)現(xiàn)的圖像讀取、切割裁剪功能,結(jié)合實(shí)例形式分析了Python基于matplotlib操作圖片的加載、讀取、坐標(biāo)控制及裁剪相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
Python如何把不同類型數(shù)據(jù)的json序列化
這篇文章主要介紹了Python如何把不同類型數(shù)據(jù)的json序列化,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
使用PyQt的QLabel組件實(shí)現(xiàn)選定目標(biāo)框功能的方法示例
這篇文章主要介紹了使用PyQt的QLabel組件實(shí)現(xiàn)選定目標(biāo)框功能的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
python list count統(tǒng)計(jì)個(gè)數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了python list count統(tǒng)計(jì)個(gè)數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
pandas使用dtype/dtypes修改數(shù)據(jù)類型
在數(shù)據(jù)處理和分析中,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換以滿足特定的需求,本文主要介紹了pandas使用dtype/dtypes修改數(shù)據(jù)類型,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
Python中排序函數(shù)sorted()函數(shù)的使用實(shí)例
sorted()作為Python內(nèi)置函數(shù)之一,其功能是對(duì)序列(列表、元組、字典、集合、還包括字符串)進(jìn)行排序,下面這篇文章主要給大家介紹了關(guān)于Python中排序函數(shù)sorted()函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-11-11

