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("一起向未来")

输出结果

Python生成彩色字符画_第1张图片
Python生成彩色字符画_第2张图片

你可能感兴趣的:(python)