Python彩色字符画
结合本人上篇博文《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彩色字符画相关推荐
- python学习之手把手教你将图片变成黑白或彩色字符画(骚操作)
文章目录 前言 一.字符画的实现原理 二.黑白字符画实现代码 三.彩色字符画生成 代码实现: 总结 前言 字符画这个话题,似乎早在贴吧时代就已经被玩烂了.在百度图片随便一搜索,就能够看到非常多.然后在 ...
- python生成字符画_Python生成字符画 | 文艺数学君
摘要这一篇文章介绍使用Python生成字符画的方式. 会给出简单的原理介绍和实现的方式. 最后会给出源代码的链接地址. 简介 这一篇介绍一下使用Python来进行字符画的生成. 这里会介绍一下生成的步 ...
- Python制作字符画(pillow,numpy的使用)
Python制作字符画 简介:本文讲解,如何使用python制作字符画,这里使用的是pillow和numpy这两个python的库. 字符画: 简单的字符画是利用字符的形状代替图画的线条来构成简单的人 ...
- 利用python生成字符画
先看看效果图: 转换后: 将图片转换成字符画的原理: 先将图片转换成黑白,然后一行行的读取灰度,建立灰度与字符的映射. 转换代码: def transform(image_file): image_f ...
- 【云云怪】黑白/彩色字符画/字符视频,代码搜集
1,黑白字符画(原图可以不用太大): import cv2 import random import numpy as npdef img2strimg(frame, K=3):height, wid ...
- python动态图片转字符画_【小工具】使用python将图片转彩色字符画
[Python] 纯文本查看 复制代码# -*- coding:utf-8 -*- from PIL import Image, ImageFont, ImageDraw from tkinter i ...
- 35行代码利用python生成字符画,非常适合初学者练习,附源码!
python字符画是一个简单有趣的小程序,非常适合初学者进行学(zhuang)习(bi).python字符画生成的原理及其简单,一句话概括就是----将图片像素点用不同字符代替,从而将像素组成的图片转 ...
- 用python绘制字符画
from PIL import Image# 将一个灰度值转换成对应的字符 def GraytoChar(gray):allChar = """@B%8&WM#* ...
- python生成字符画_使用Python生成ASCII字符画
使用Python生成ASCII字符画 在很多的网站主页中或者程序的注释中会有一些好看的字符注释画.显得很牛逼的样子 例如: 知乎 _____ _____ _____ _____ /\ \ /\ \ / ...
- python图片字符画教程_手把手教你用python将图片做成字符画!
字符视觉排序 我们可以看到list中左边的字符视觉上较深,右边的字符视觉上较浅. 打开图片,调整大小 打开我们需要转化的图片,并将图片调整为我们所指定的宽和高(字符画的宽和高) 我们使用PIL来进行图 ...
最新文章
- JavaScript初学者编程题(23)
- Java EE---Spring AOP
- 重磅 | 2018年清华大学研究生新生大数据
- opencv画直线,矩形
- 【 POJ - 3628 】Bookshelf 2(dfs 或 dp,0-1背包)
- linux 设备 major 253,redhat5.5测试环境中使用udev配置raw设备
- Javascript日期函数使用需要注意地方
- Latex排列图片:自由定义N行M列的排列方式
- 【开发工具】之makefile基本规则
- ZOJ 3502	 Contest 状态压缩 概率 DP
- Redash本地开发环境搭建
- yum mysql 无法启动失败_Linux下MySQL数据库yum升级后无法启动解决办法
- MP3 Encoder for mac(MP3编码器)修复版
- redis scan命令详解
- 深度装机大师一键重装_做好电脑重装系统前后的这些注意事项,让你从此摆脱装机忧愁!...
- qt在linux中安装目录,详解QT安装全过程
- 演讲者模式投影到幕布也看到备注_PPT制作技巧:如何实现ppt放映不同界面(演讲者模式)?...
- java 设置压缩文件大小不变_为什么把文件压缩后,文件大小却不变呢?
- 《稻盛和夫给年轻人的忠告》阅读笔记
- flutter图标按钮_flutter 导航栏返回按钮带图标
热门文章
- pythonfor循环100次_Python之for循环
- 2020云栖大会-达摩院
- radius mysql md5_Radius认证
- 英国AI创业公司Hazy获180万美元种子轮融资
- 移远NB模组(BC26)OPENCPU开发——MQTT上传接收
- 《网蜂A8实战演练》——11.Linux 电容式触摸屏驱动
- Linux日期计算器,【C++】日期类+日期万年历+日期计算器
- 提交健康信息服务器拥挤,python hpilo 监控 hp ilo 服务器健康信息
- 此计算机上的操作系统或service pack,win10系统安装补丁失败提示缺少service pack系统组件的设置办法...
- 自定义组件时 Binary XML file line Error inflating class 异常