结合本人上篇博文《Python图转字符画》
和其他参考
https://blog.csdn.net/kongfu_cat/article/details/79511087

代码如下:

# -*- coding:utf-8 -*-
from PIL import Image
import os
from PIL import Image, ImageFont, ImageDraw
import argparseIMG = r'F:\PythonFiles\PycharmFile\ex11CharacterGraph2_GraphIn.png'  #文件路径WIDTH = 80  #定义输出画面的宽度
HEIGHT = 45  #定义
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")  #所用字符列表# 将256灰度映射到70个字符上
def get_char(r, g, b, alpha=256):  # alpha透明度if alpha == 0:return ' 'length = len(ascii_char)gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)  # 计算灰度unit = (256.0 + 1) / lengthreturn ascii_char[int(gray / unit)]  # 不同的灰度对应着不同的字符# 通过灰度来区分色块
#该部分以下和灰度值字符画区别所在
if __name__=='__main__':im = Image.open(IMG)WIDTH = int(im.width/6) #高度比例为原图的1/6较好,由于字体宽度HEIGHT = int(im.height/15)  #高度比例为原图的1/15较好,由于字体高度im_txt = Image.new("RGB",(im.width,im.height),(255,255,255))im = im.resize((WIDTH,HEIGHT),Image.NEAREST)txt = ""colors = []for i in range(HEIGHT):for j in range(WIDTH):pixel = im.getpixel((j,i))colors.append((pixel[0],pixel[1],pixel[2]))#记录像素颜色信息if(len(pixel) == 4):txt += get_char(pixel[0],pixel[1],pixel[2],pixel[3])else:txt += get_char(pixel[0],pixel[1],pixel[2])txt += '\n'colors.append((255,255,255))dr = ImageDraw.Draw(im_txt)font=ImageFont.load_default().font#获取字体x=y=0#获取字体的宽高font_w,font_h=font.getsize(txt[1])font_h *= 1.37 #调整后更佳#ImageDraw为每个ascii码进行上色for i in range(len(txt)):if(txt[i]=='\n'):x+=font_hy=-font_wdr.text([y,x],txt[i],colors[i])y+=font_w#输出im_txt.save(r'F:\PythonFiles\PycharmFile\ex11CharacterGraph2_GraphOut.png')

输入:

输出:

Python彩色字符画相关推荐

  1. python学习之手把手教你将图片变成黑白或彩色字符画(骚操作)

    文章目录 前言 一.字符画的实现原理 二.黑白字符画实现代码 三.彩色字符画生成 代码实现: 总结 前言 字符画这个话题,似乎早在贴吧时代就已经被玩烂了.在百度图片随便一搜索,就能够看到非常多.然后在 ...

  2. python生成字符画_Python生成字符画 | 文艺数学君

    摘要这一篇文章介绍使用Python生成字符画的方式. 会给出简单的原理介绍和实现的方式. 最后会给出源代码的链接地址. 简介 这一篇介绍一下使用Python来进行字符画的生成. 这里会介绍一下生成的步 ...

  3. Python制作字符画(pillow,numpy的使用)

    Python制作字符画 简介:本文讲解,如何使用python制作字符画,这里使用的是pillow和numpy这两个python的库. 字符画: 简单的字符画是利用字符的形状代替图画的线条来构成简单的人 ...

  4. 利用python生成字符画

    先看看效果图: 转换后: 将图片转换成字符画的原理: 先将图片转换成黑白,然后一行行的读取灰度,建立灰度与字符的映射. 转换代码: def transform(image_file): image_f ...

  5. 【云云怪】黑白/彩色字符画/字符视频,代码搜集

    1,黑白字符画(原图可以不用太大): import cv2 import random import numpy as npdef img2strimg(frame, K=3):height, wid ...

  6. python动态图片转字符画_【小工具】使用python将图片转彩色字符画

    [Python] 纯文本查看 复制代码# -*- coding:utf-8 -*- from PIL import Image, ImageFont, ImageDraw from tkinter i ...

  7. 35行代码利用python生成字符画,非常适合初学者练习,附源码!

    python字符画是一个简单有趣的小程序,非常适合初学者进行学(zhuang)习(bi).python字符画生成的原理及其简单,一句话概括就是----将图片像素点用不同字符代替,从而将像素组成的图片转 ...

  8. 用python绘制字符画

    from PIL import Image# 将一个灰度值转换成对应的字符 def GraytoChar(gray):allChar = """@B%8&WM#* ...

  9. python生成字符画_使用Python生成ASCII字符画

    使用Python生成ASCII字符画 在很多的网站主页中或者程序的注释中会有一些好看的字符注释画.显得很牛逼的样子 例如: 知乎 _____ _____ _____ _____ /\ \ /\ \ / ...

  10. python图片字符画教程_手把手教你用python将图片做成字符画!

    字符视觉排序 我们可以看到list中左边的字符视觉上较深,右边的字符视觉上较浅. 打开图片,调整大小 打开我们需要转化的图片,并将图片调整为我们所指定的宽和高(字符画的宽和高) 我们使用PIL来进行图 ...

最新文章

  1. JavaScript初学者编程题(23)
  2. Java EE---Spring AOP
  3. 重磅 | 2018年清华大学研究生新生大数据
  4. opencv画直线,矩形
  5. 【 POJ - 3628 】Bookshelf 2(dfs 或 dp,0-1背包)
  6. linux 设备 major 253,redhat5.5测试环境中使用udev配置raw设备
  7. Javascript日期函数使用需要注意地方
  8. Latex排列图片:自由定义N行M列的排列方式
  9. 【开发工具】之makefile基本规则
  10. ZOJ 3502 Contest 状态压缩 概率 DP
  11. Redash本地开发环境搭建
  12. yum mysql 无法启动失败_Linux下MySQL数据库yum升级后无法启动解决办法
  13. MP3 Encoder for mac(MP3编码器)修复版
  14. redis scan命令详解
  15. 深度装机大师一键重装_做好电脑重装系统前后的这些注意事项,让你从此摆脱装机忧愁!...
  16. qt在linux中安装目录,详解QT安装全过程
  17. 演讲者模式投影到幕布也看到备注_PPT制作技巧:如何实现ppt放映不同界面(演讲者模式)?...
  18. java 设置压缩文件大小不变_为什么把文件压缩后,文件大小却不变呢?
  19. 《稻盛和夫给年轻人的忠告》阅读笔记
  20. flutter图标按钮_flutter 导航栏返回按钮带图标

热门文章

  1. pythonfor循环100次_Python之for循环
  2. 2020云栖大会-达摩院
  3. radius mysql md5_Radius认证
  4. 英国AI创业公司Hazy获180万美元种子轮融资
  5. 移远NB模组(BC26)OPENCPU开发——MQTT上传接收
  6. 《网蜂A8实战演练》——11.Linux 电容式触摸屏驱动
  7. Linux日期计算器,【C++】日期类+日期万年历+日期计算器
  8. 提交健康信息服务器拥挤,python hpilo 监控 hp ilo 服务器健康信息
  9. 此计算机上的操作系统或service pack,win10系统安装补丁失败提示缺少service pack系统组件的设置办法...
  10. 自定义组件时 Binary XML file line Error inflating class 异常