- 熟悉Python基本语法
- Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
- PIL是Python平台事实上的图像处理标准库,支持多种格式,并提供强大的图形与图像处理功能。目前PIL的官方最新版本为1.1.7,支持的版本为python 2.5, 2.6, 2.7,并不支持python3,因此我们用pillow代替
- 实验目标:Python生成彩色字符画
- Python 3.x (面向对象的高级语言)
- PIL (python第三方库)
pip3 install pillow
首先,循环将text字符串,填写进图片每一像素,比字体颜色与原图像素保持一致,直到所有像素都填写完成为止。
# -*- coding: utf-8 -*-
"""
Created on Fri Feb 25 20:07:11 2022
@author: TFX
"""
from PIL import Image, ImageDraw, ImageFont
# 生成彩色字符画
def CharPic(text): # 输入参数为text文字
font_size = 20 # 字体大小
img_path = "test.jpg" # 图片路径
font_path = 'C:/Windows/Fonts/simhei.ttf' # 黑体字体路径,windows电脑可以在C:\Windows\Fonts里找到
# PIL.ImageFont.truetype(font=None, size=10, index=0, encoding=”) 返回一个字体对象
font = ImageFont.truetype(font_path, font_size)
img = Image.open(img_path)
w, h = img.size
new_img = Image.new("RGBA", (w, h))
num = 0
for i in range(0, h, font_size):
for j in range(0, w, font_size):
r,g,b= img.getpixel((j, i))
# print(r,g,b)
draw = ImageDraw.Draw(new_img)
draw.text((j, i), text[num % len(text)], fill=(r, g, b), font=font)
num += 1
new_img.show() # 显示图片
new_img.save(text+'.png') # 保存为'.jpg'文件打不开
if __name__ == "__main__":
CharPic("一起向未来")