Python實(shí)現(xiàn)圖片添加文字
在工作中有時(shí)候會(huì)給圖上添加文字,常用的是PS工具,不過(guò)我想通過(guò)代碼的方式來(lái)給圖片添加文字。
需要使用的Python的圖像庫(kù):PIL.更加詳細(xì)的知識(shí)點(diǎn)如下:
Imaga模塊:用來(lái)創(chuàng)建,打開(kāi),保存圖片文件
- new(path):用來(lái)創(chuàng)建一個(gè)新的圖片文件.該文件位于path所在的路徑中。。打開(kāi)后返回Image類型的圖片。
- open(path):用來(lái)打開(kāi)已經(jīng)存在的圖片文件.該文件位于path所在的路徑中。打開(kāi)后返回Image類型的圖片。
- save(path):用來(lái)把創(chuàng)建或者打開(kāi)的圖片保到path所在的路徑中。
ImageDraw模塊:用來(lái)在圖片上繪制點(diǎn),線,圖形和文字。
- Draw(Image):用來(lái)返回一個(gè)ImageDraw類型的圖片,它的參數(shù)為Image類型的圖片。
- text((x,y),str,…):用來(lái)在圖片上添加文字,文字位置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)于代碼做以下說(shuō)明:
在代碼中,會(huì)創(chuàng)建一個(gè)320*240和圖片,背景為白色,里面什么也沒(méi)有。
把文字和圖片邊的寬度設(shè)置成了20,這個(gè)可以自己定義。另外,字符占用的長(zhǎng)度乘以3是個(gè)經(jīng)驗(yàn)值,也可以修改。
在圖片中添加的文字為'good',這個(gè)可以自己定義。
下面是程序的運(yùn)行結(jié)果:
PS:第一次運(yùn)行時(shí),如果沒(méi)有圖片,會(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)的圖片瀏覽器打開(kāi)一個(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語(yǔ)言是這么的好玩,文中對(duì)GUI對(duì)話框作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05Python使用matplotlib實(shí)現(xiàn)的圖像讀取、切割裁剪功能示例
這篇文章主要介紹了Python使用matplotlib實(shí)現(xiàn)的圖像讀取、切割裁剪功能,結(jié)合實(shí)例形式分析了Python基于matplotlib操作圖片的加載、讀取、坐標(biāo)控制及裁剪相關(guān)操作技巧,需要的朋友可以參考下2018-04-04Python如何把不同類型數(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)框功能的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05python 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-02pandas使用dtype/dtypes修改數(shù)據(jù)類型
在數(shù)據(jù)處理和分析中,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換以滿足特定的需求,本文主要介紹了pandas使用dtype/dtypes修改數(shù)據(jù)類型,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06Python中排序函數(shù)sorted()函數(shù)的使用實(shí)例
sorted()作為Python內(nèi)置函數(shù)之一,其功能是對(duì)序列(列表、元組、字典、集合、還包括字符串)進(jìn)行排序,下面這篇文章主要給大家介紹了關(guān)于Python中排序函數(shù)sorted()函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-11-11