一、介紹
Helvetica是一種比較流行的無襯線字體,而像素化字體則是一種近年來比較流行的設計元素。本文將會介紹如何使用Python實現指定字體的Helvetica像素化字體效果。
二、安裝依賴庫
要實現像素化字體效果,需要使用到Python Imaging Library(PIL)庫。PIL庫可以安裝在命令行中使用pip命令進行安裝。
pip install Pillow
三、實現
實現的步驟如下:
- 使用PIL庫中的ImageFont方法載入指定字體
- 使用PIL庫中的Image方法創建一張純色的圖片
- 使用PIL庫中的ImageDraw方法在圖片中繪製出指定的文本
- 調用PIL庫中的resize方法將圖片進行縮放,使得圖片中的像素達到我們想要的大小,生成像素化字體效果
具體的實現代碼如下:
from PIL import Image, ImageDraw, ImageFont
text = "Hello World"
font = ImageFont.truetype("Helvetica.ttf", 100)
size = font.getsize(text)
img = Image.new(mode="RGBA", size=(size[0], size[1]), color=(255, 255, 255, 0))
draw = ImageDraw.Draw(img)
draw.text((0, 0), text, font=font, fill=(255, 255, 255, 255))
img = img.resize((200, 200), resample=Image.LANCZOS)
img.show()
代碼中,我們使用了Helvetica字體,通過getsize方法獲取文本的大小,然後生成一張背景為透明的純色圖片,調用ImageDraw的text方法寫入文本,最後對生成的圖片進行縮放得到像素化的效果。
四、優化和應用
除了調整圖片的大小以外,還可以通過調整圖片的背景色和文本顏色來得到不同的像素化字體效果。像素化字體可以應用于海報、宣傳單等設計中,使得作品更加具有時尚感和藝術感。
我們可以將像素化字體效果批量應用於一組文本/圖片中:
import os
def pixelate_font(text):
font = ImageFont.truetype("Helvetica.ttf", 100)
size = font.getsize(text)
img = Image.new(mode="RGBA", size=(size[0], size[1]), color=(255, 255, 255, 0))
draw = ImageDraw.Draw(img)
draw.text((0, 0), text, font=font, fill=(255, 255, 255, 255))
img = img.resize((200, 200), resample=Image.LANCZOS)
return img
directory = "testdata"
files = os.listdir(directory)
for filename in files:
full_path = os.path.join(directory, filename)
img = Image.open(full_path)
img_size = img.size
img_pixelated = img.resize((int(img_size[0]/3), int(img_size[1]/3)), resample=Image.LANCZOS).resize(img_size)
text = "Hello World"
img_font = pixelate_font(text)
img_result = Image.blend(img, img_font, 0.5)
img_result = Image.blend(img_result, img_pixelated, 0.2)
img_result.show()
在此版本中,我們讀取testdata目錄下的所有圖片,由於原始圖片大小不一,因此需要先將其縮小,以適應像素化字體效果,然後在背景圖片上覆蓋我們生成的像素化字體圖片,調整不透明度得到最終的效果。
五、總結
本文介紹了如何使用Python通過PIL庫實現指定字體的Helvetica像素化字體效果。在應用中,我們可以將像素化字體效果批量應用於一組文本/圖片,並通過調整不同的參數得到不同的效果,具有一定的藝術性和時尚感,可以應用于海報、宣傳單等設計中,提高作品審美價值。
原創文章,作者:OCOZF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/330222.html