Python 把图片变成字符画

2023-05-16

“”"
2022-2-12
“”"

from PIL import Image # PIL 是一个 Python 图像处理库

ascii_char = list(“$@B%8&WM#*oahkbdpqwmZO0QLCJUY1234567890Xzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,”^`'. ")

是我们的字符画所使用的字符集,一共有 70 个字符,字符的种类与数量可以自己根据字符画的效果反复调试的

WIDTH = 60 # 字符画的宽
HEIGHT = 45 # 字符画的高

将256灰度映射到70个字符上,也就是RGB值转字符的函数:

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) / length
return ascii_char[int(gray / unit)] # 不同的灰度对应着不同的字符

通过灰度来区分色块

一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此 if name == ‘main’: 的作用就是控制这两种情况执行代码的过程,在 if name == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的

if name == ‘main’:
img = ‘monkey.jpg’ # 图片所在位置
im = Image.open(img)
im = im.resize((WIDTH, HEIGHT), Image.NEAREST)
txt = “”
for i in range(HEIGHT):
for j in range(WIDTH):
txt += get_char(*im.getpixel((j, i))) # 获得相应的字符
txt += ‘\n’
print(txt) # 打印出字符画
# 将字符画 写入文件中
with open(“output.txt”, ‘w’) as f:
f.write(txt)

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 把图片变成字符画 的相关文章

随机推荐

  • 监控平台(windows版本)使用SDK的方式接入摄像头

    一 登录进入监控平台管理端 二 添加设备 1 依次点击左侧菜单栏中业务管理 设备管理 xff0c 进入到设备管理界面 如下图 2 点击设备列表字样下的添加按钮添加设备 如下图 3 在添加设备中按如下方式填写 设备编号 可根据需求自行填写 国
  • 认识HTML

    目录 HTML介绍HTML结构HTML常用标签注释标签标题标签段落标签和换行标签格式化标签图片标签超链接标签表格标签列表标签表单标签form和input标签其他标签 无语义标签 HTML特殊字符 HTML介绍 HTML全称是超文本标记语言
  • spring超全面详解

    spring概述 Spring 是于2003年兴起的一款轻量级的 非侵入式的IOC和AOP的一站式的java开发框架 为简化企业级应用开发而生 1 轻量级 就是指spring核心功能的jar包不大 2 非侵入式 我们的业务代码不需要继承或实
  • 虚拟机怎么从图形界面转到命令行(去掉桌面)

    点击 xff1a ctrl 43 alt 43 F1切换到桌面 点击 xff1a ctrl 43 alt 43 F5切换命令行 xff08 去掉桌面 xff09
  • springboot是怎么实现自动配置的?

    一 springboot是对spring框架做的一系列优化 xff0c 减少了大量繁琐的配置 xff0c 并提供了内置web服务器 xff0c 让程序运行更快 1 springboot起步依赖 xff1a 简单的说 xff0c 起步依赖就是
  • 第三章 Linux文件目录查找

    Find命令 find命令在Linux中搜索效果非常不错 xff0c 不仅可以按照文件名搜索文件 xff0c 还可以按照权限 时间 容量大小等来搜索文件 xff0c 但是find命令它是通过递归式在硬盘中进行搜索的 xff0c 如果指定的搜
  • 超市购物小程序

    编写一个超市购物程序 xff0c 在一家超市有牙刷 毛巾 水杯 苹果和香蕉五种商品 xff1a 拥护输入序列号进行购物 xff0c 并在输入购物数量后算出所需花费及退出购物时的总花费 一次购买结束后 xff0c 需用户输入 34 Y 34
  • 链游是什么?

    链游 从字面上理解它就是区块链上的游戏 xff0c 也被称作gamefi xff08 Gaming and Decentralized Finance xff09 在国内也被称为金融性游戏 在链游中玩家除了能够有玩游戏的体验之外也能够参与交
  • 出现error ‘props‘ is defined but never used 这种eslint相关的报错,关闭eslint的方法

    最近做项目遇到如下报错 xff1a cmd终端中 xff1a 为了关闭这个eslint报错 xff0c 可以用如下方法 xff1a 针对自己创建的新项目的话 xff0c 是在项目文件夹中的vue config js 中 此处项目是用Vue
  • 关于JAVA中内存溢出的解决办法

    关于JAVA中内存溢出的解决办法 J2ee应用系统是运行在J2EE应用服务器上的 xff0c 而j2ee应用服务器又是运行在JVM上的 xff0c 生成环境中JVM参数的优化和设置对于J2EE应用系统性能有着决定性的作用 要优化系统 xff
  • 用FTPClient上传文件,执行this.ftpClient.storeFile(fileName, inStream)报错

    this ftpClient storeFile fileName inStream 方法执行时无反应 xff0c 最后提示错误 原因 xff1a 代码中加了多了一个设置 this ftpClient enterLocalPassiveMo
  • Python+ADB脚本

    目录 准备工具 问题解决 xff1a 如何安装adb和python xff1f 编写程序 实现 注意 xff1a 准备工具 进入正题 xff0c 首先要准备的工具如下 1 一台正常的电脑且安装adb和python环境 2 一部安卓手机 4
  • springboot+vue+协同过滤算法电影推荐网站

    源码获取 xff1a 文末获取联系方式 xff01 一 项目运行 环境配置 xff1a Jdk1 8 43 Tomcat 8 5 43 Mysql 43 VUE 43 IDEA xff08 Eclispe MyEclispe Sts都支持
  • Ubuntu20.04下基于ROS和PX4的无人机仿真平台的基础配置搭建(我所遇到的问题)

    写在前面 xff1a 我目前也处于学习阶段 xff0c 当时按照ROS教程安装的20 04 xff0c 随后搭建XTDrone阶段因为版本问题出现了很多问题 xff0c 这是我根据问题 xff0c 检索后汇总的一些解决措施 本文中提到的问题
  • 手机如何远程连接linux系统的VPS

    1 首先下载安装APP xff1a iTerminal 2 运行iTerminal xff0c 然后点击SSH栏 3 然后按要求填入各项内容 xff0c 确认都正确后点击底下的连接按钮 4 如图连接成功后即可在手机上操作了
  • 学习总结

    错误 xff1a TypeError ERR INVALID ARG TYPE The 34 id 34 argument must be of type string Received an instance of IncomingMes
  • Java笔记_3(循环)

    Java笔记 3 一 判断与循环1 1 顺序结构1 2 分支结构1 2 1 if语句1 2 2 switch语句 1 3 循环结构1 3 1 for循环1 3 2 while循环1 3 3 do while循环 1 4 回文数的判断1 5
  • 关于getchar的用法及实例解析

    一 getchar 函数是什么 xff1f getchar 函数是获取一个字符 说到这里就有人问了 xff0c 为什么他的返回类型是int xff1f 因为实际上EOF 61 end of file xff08 1 xff09 xff0c
  • springboot基于JAVA的电影推荐系统的开发与实现 附源码-毕业设计112306

    目 录 摘 要 4 Abstract 5 第 1 章 前 言 6 1 1 研究背景 6 1 2 研究现状 6 1 3 系统开发目标 6 第 2 章 技术与原理 8 2 1 JSP 介绍 8 2 2 JAVA 技术 8 2 3 MySQL 数
  • Python 把图片变成字符画

    34 2022 2 12 34 from PIL import Image PIL 是一个 Python 图像处理库 ascii char 61 list 64 B 8 amp WM oahkbdpqwmZO0QLCJUY123456789