【python】圖片插入文字
問題
如何在圖片中插入大量文字並且自動換行
效果
原始圖
效果圖
註明
若需要寫入中文請使用中文字型
實現方式
from PIL import Image, ImageDraw, ImageFont
class ImgText:
font = ImageFont.truetype("micross.ttf", 24)
def __init__(self, text):
# 預設寬度 可以修改成你需要的圖片寬度
self.width = 100
# 文字
self.text = text
# 段落 , 行數, 行高
self.duanluo, self.note_height, self.line_height = self.split_text()
def get_duanluo(self, text):
txt = Image.new('RGBA', (100, 100), (255, 255, 255, 0))
draw = ImageDraw.Draw(txt)
# 所有文字的段落
duanluo = ""
# 寬度總和
sum_width = 0
# 幾行
line_count = 1
# 行高
line_height = 0
for char in text:
width, height = draw.textsize(char, ImgText.font)
sum_width += width
if sum_width > self.width: # 超過預設寬度就修改段落 以及當前行數
line_count += 1
sum_width = 0
duanluo += '\n'
duanluo += char
line_height = max(height, line_height)
if not duanluo.endswith('\n'):
duanluo += '\n'
return duanluo, line_height, line_count
def split_text(self):
# 按規定寬度分組
max_line_height, total_lines = 0, 0
allText = []
for text in self.text.split('\n'):
duanluo, line_height, line_count = self.get_duanluo(text)
max_line_height = max(line_height, max_line_height)
total_lines += line_count
allText.append((duanluo, line_count))
line_height = max_line_height
total_height = total_lines * line_height
return allText, total_height, line_height
def draw_text(self):
"""
繪圖以及文字
:return:
"""
note_img = Image.open("001.png").convert("RGBA")
draw = ImageDraw.Draw(note_img)
# 左上角開始
x, y = 0, 0
for duanluo, line_count in self.duanluo:
draw.text((x, y), duanluo, fill=(255, 0, 0), font=ImgText.font)
y += self.line_height * line_count
note_img.save("result.png")
if __name__ == '__main__':
n = ImgText(
"1234567890" * 5)
n.draw_text()
相關文章
- plsql插入圖片SQL
- Python 提取PDF文字和圖片Python
- 基於python的文字轉圖片工具Python
- UIButton圖片文字控制元件位置自定義(圖片居右文字居左、圖片居中文字居中、圖片居左文字消失等)UI控制元件
- 直播系統搭建,插入圖片、刪除圖片、設定圖片大小
- jQuery 在圖片和文字中插入內容(多種情況考慮)jQuery
- PHP 圖片、文字合成PHP
- markdown插入圖片、音訊影片音訊
- 圖片裁剪-文字識別-文字新增
- Python 在Excel中插入、替換、提取、或刪除圖片PythonExcel
- python生成驗證碼,文字轉換為圖片Python
- 哪個圖片識別文字app能快速轉換圖片成文字?APP
- 圖片轉換文字appAPP
- CSS 文字環繞圖片CSS
- WPS文字輕鬆插入結構圖
- 機器學習根據文字生成圖片教程(附python程式碼)機器學習Python
- 如何免費識別圖片文字?圖片文字識別軟體怎麼用
- 如何將<img>圖片插入html元素中HTML
- 識別圖片文字轉換成word文字真的很難嗎?分享圖片轉文字的技巧
- CSS文字環繞圖片效果CSS
- CSS聚光燈文字(無圖片)CSS
- 分享:識別圖片文字方法
- GD 庫 PNG 透明底圖片新增文字及圖片水印
- java匯出圖片,拼接多個圖片, 拼接文字和圖片 到一個圖片檔案Java
- Python呼叫百度OCR介面圖片識別轉文字Python
- QT5.9如何實現插入圖片與圖示QT
- 【Go語言繪圖】圖片新增文字(二)Go繪圖
- 【Go語言繪圖】圖片新增文字(一)Go繪圖
- Overleaf中插入pdf圖片只顯示圖片路徑的解決方式
- CSS圖片上面新增文字說明CSS
- 圖片識別文字具體操作
- 圖片識別文字,分享給你!
- UIButton的圖片和文字位置UI
- UIbutton 上下圖片文字佈局UI
- canvas 圖片、文字模糊問題Canvas
- PHP實現水印效果(文字、圖片)PHP
- 如何修改網頁文字或圖片?網頁
- 如何將圖片識別成文字?