Python圖像處理之輕松實現(xiàn)在圖片上添加文字
引言
在當今的數(shù)字化時代,我們經(jīng)常需要處理圖像。無論是為攝影作品添加專屬水印、批量生成會議證書、還是制作有趣的社交媒體表情包,**“在圖片上添加文字”**都是一項極其常用且實用的技能。
如果你是一名為零基礎的Python初學者,好消息是:利用Python來實現(xiàn)這一功能不僅非常簡單,而且效率極高。在本篇教程中,我們將系統(tǒng)地學習如何使用Python中最強大且易用的圖像處理庫——Pillow,一步步將文字完美地融合到圖片中。
前置準備
在開始編寫代碼之前,我們需要準備好以下開發(fā)環(huán)境和素材:
- Python環(huán)境:確保你的電腦上已經(jīng)安裝了Python(建議版本在3.7及以上)。
- 一張背景圖片:準備一張用于添加文字的圖片,例如命名為
background.jpg,并將其與你的Python腳本放在同一個文件夾中。 - 一個字體文件(可選但強烈建議):如果你需要添加中文文字,必須準備一個支持中文的字體文件(通常是
.ttf或.ttc格式,例如黑體simhei.ttf),否則中文字符會顯示為方塊或亂碼。
詳細步驟指南
我們將整個過程拆分為五個簡單的步驟,即使你是完全的編程新手,也能輕松跟上。
第一步:安裝必要的圖像處理庫
Python原生并不直接支持高級圖像操作,因此我們需要借助第三方庫。Pillow 是Python中最受歡迎的圖像處理庫。
打開你的命令行工具(Windows用戶打開CMD或PowerShell,Mac用戶打開終端),輸入以下命令并回車:
pip install Pillow
第二步:導入模塊并打開圖片
安裝完成后,我們開始編寫Python代碼。首先,我們需要從Pillow庫中導入三個核心模塊:
Image:用于打開、保存和操作圖片。ImageDraw:提供在圖片上繪制圖形和文字的工具。ImageFont:用于加載和設置字體及字號。
from PIL import Image, ImageDraw, ImageFont
# 1. 打開背景圖片
# 請確保 'background.jpg' 存在于當前目錄
img = Image.open('background.jpg')
第三步:設置字體與顏色
接下來,我們需要告訴Python我們想用什么字體、多大的字號以及什么顏色來書寫文字。
# 2. 設置字體和字號 # 注意:如果寫中文,請?zhí)鎿Q為電腦中實際存在的字體路徑,例如Windows下的 'C:/Windows/Fonts/simhei.ttf' font_path = 'arial.ttf' # 這里以Arial為例,若是中文請換成中文字體文件 font_size = 50 font = ImageFont.truetype(font_path, font_size) # 3. 設置文字顏色 (R, G, B) # (255, 255, 255) 代表純白色,(0, 0, 0) 代表純黑色 text_color = (255, 255, 255)
第四步:在圖片上繪制文字
現(xiàn)在,我們創(chuàng)建一個“畫筆”對象,并使用它將文字寫在圖片的指定坐標上。
注意:在計算機圖像中,坐標系的原點 (0, 0) 位于圖片的左上角。向右X軸增加,向下Y軸增加。
# 4. 創(chuàng)建一個可用來繪圖的對象 draw = ImageDraw.Draw(img) # 5. 定義文字內(nèi)容和插入的坐標位置 text_content = "Hello, Python!" position = (100, 150) # 距離左邊緣100像素,距離上邊緣150像素 # 6. 將文字繪制到圖片上 draw.text(position, text_content, font=font, fill=text_color)
第五步:保存與預覽最終圖片
最后一步,我們將修改后的圖片保存為一個新的文件,以免覆蓋原始圖片,并讓Python幫我們打開預覽。
# 7. 保存合成后的新圖片
img.save('output_image.jpg')
# 8. 預覽圖片(調(diào)用系統(tǒng)默認看圖軟件)
img.show()
完整代碼速覽
將以上步驟合并,你就得到了一個完整且可運行的Python腳本:
from PIL import Image, ImageDraw, ImageFont
def add_text_to_image():
# 1. 打開圖片
img = Image.open('background.jpg')
# 2. 設置字體、字號和顏色 (請根據(jù)實際情況修改字體路徑)
font = ImageFont.truetype('simhei.ttf', 50) # 使用黑體支持中文
text_color = (255, 255, 0) # 黃色
# 3. 創(chuàng)建畫筆并繪制文字
draw = ImageDraw.Draw(img)
draw.text((50, 50), "你好,Python圖像處理!", font=font, fill=text_color)
# 4. 保存并顯示結(jié)果
img.save('output_image.jpg')
img.show()
print("圖片處理完成,已保存為 output_image.jpg")
if __name__ == "__main__":
add_text_to_image()
常見問題與避坑指南
對于初學者來說,在處理圖像時往往會遇到幾個經(jīng)典問題。以下是解決方案:
中文字符變成方塊或亂碼
- 原因:Pillow默認的字體不支持中文字符。
- 解決:必須使用
ImageFont.truetype()加載一個支持中文的.ttf字體文件。Windows用戶通??梢栽?C:\Windows\Fonts\目錄下找到字體(如simhei.ttf);Mac用戶可以在/System/Library/Fonts/找到(如PingFang.ttc)。
文字超出了圖片的邊界
- 原因:設置的起始坐標
(x, y)太靠右或靠下,或者字號過大。 - 解決:嘗試減小坐標值,或者縮小
font_size。進階用戶可以使用draw.textbbox()方法來提前計算文字的寬度和高度,從而實現(xiàn)居中對齊。
找不到圖片文件 (FileNotFoundError)
- 原因:Python腳本找不到你指定的
background.jpg。 - 解決:確保圖片和你的
.py代碼文件放在同一個文件夾中,或者在代碼中填寫圖片的絕對路徑(例如D:/images/background.jpg)。
學習資源與總結(jié)
恭喜你!你已經(jīng)成功掌握了使用Python給圖片添加文字的基礎技能。這只是Python自動化圖像處理的冰山一角。掌握這個技能后,你可以嘗試編寫循環(huán),批量為1000張圖片打上不同的名字,實現(xiàn)真正的辦公自動化。
以上就是Python圖像處理之輕松實現(xiàn)在圖片上添加文字的詳細內(nèi)容,更多關于Python圖片添加文字的資料請關注腳本之家其它相關文章!
相關文章
使用urllib庫的urlretrieve()方法下載網(wǎng)絡文件到本地的方法
今天小編就為大家分享一篇使用urllib庫的urlretrieve()方法下載網(wǎng)絡文件到本地的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python實現(xiàn)獲取本機網(wǎng)卡的MAC地址,IP地址和路由表
本文主要為大家詳細介紹了如何在Windows和Mac系統(tǒng)下獲取本機MAC地址和IP地址的方法,以及如何使用ARP協(xié)議獲取局域網(wǎng)內(nèi)所有計算機的IP地址與MAC地址,感興趣的小伙伴可以了解下2026-05-05
Python使用Tesseract?OCR實現(xiàn)識別圖片中的文字
光學字符識別OCR是一項將圖像中的文字轉(zhuǎn)換為可編輯文本的技術,本文將詳細介紹如何使用Python結(jié)合Tesseract?OCR來實現(xiàn)圖片中文字的識別,感興趣的小伙伴可以了解下2025-11-11

