> 文档中心 > Python生成彩色字符画

Python生成彩色字符画

Python生成彩色字符

  • 前提条件
  • 相关介绍
  • 实验环境
  • 生成彩色字符画
    • 主要思路
    • 代码实现
    • 输出结果

前提条件

  • 熟悉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("美女")

输出结果

在这里插入图片描述