网络编程
位置:首页>> 网络编程>> Python编程>> python用字符组成图像代码实例

python用字符组成图像代码实例

作者:autofelix  发布时间:2023-09-15 02:12:04 

标签:python,字符,图

 一、特效预览

python用字符组成图像代码实例

处理前

python用字符组成图像代码实例

处理后

python用字符组成图像代码实例

细节放大后

二、程序原理

将图片所在的 256 的灰度映射到相应的字符上面

也就是 RGB 值转成相应的字符

然后再将字符其写入文件即可

你听懂了吗 

三、程序源码


#!/usr/bin/env python
# encoding: utf-8
from PIL import Image

class charsetPicture:
   '''
    This is a main Class, the file contains all documents.
    One document contains paragraphs that have several sentences
    It loads the original file and converts the original file to new content
    Then the new content will be saved by this class
   '''
   def __init__(self):
       self.char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
       self.width = 160
       self.height = 60

def hello(self):
       '''
       This is a welcome speech
       :return: self
       '''
       print('*' * 50)
       print(' ' * 18 + '图片转换为字符图片')
       print(' ' * 5 + 'Author: autofelix  Date: 2022-01-07 13:14')
       print('*' * 50)
       return self

def get_char(self, r, g, b, alpha=256):
       '''
       将256灰度映射到70个字符上,也就是RGB值转字符的函数
       :alpha: 透明度
       :return: self
       '''
       if alpha == 0:
           return ' '
       length = len(self.char)
       gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
       unit = (256.0 + 1) / length
       return self.char[int(gray / unit)]

def run(self):
       '''
       The program entry
       '''
       im = Image.open('assets/aaa.jpeg')
       im = im.resize((self.width, self.height), Image.NEAREST)
       txt = ''
       for i in range(self.height):
           for j in range(self.width):
               txt += self.get_char(*im.getpixel((j, i)))
           txt += '\n'
       print(txt)
       with open('handler.txt', 'w') as f:
           f.write(txt)

if __name__ == '__main__':
   charsetPicture().hello().run()

来源:https://blog.csdn.net/weixin_41635750/article/details/122416621

0
投稿

猜你喜欢

  • SQL Server内存会不断增加当 SQL Server 数据库引擎在 Microsoft? Windows NT? 或 Windows?
  • 设计页面时,经常会从一个页面打开一个子窗口以供浏览者查看。通常,这种子窗口中的内容一经浏览者看过,对于浏览者而言就不再需要,而他们常常会忘记
  • 前言可选链操作符(?.)允许读取位于链接对象链身处的属性的值,而不必明确验证链中的每个引用是否有效。不同之处在于,在引用为空(null或者u
  • mssql 的正式名字是 SQL Server MS公司出的。图形操作界面好一些,性能还可以。在在mssql和oracle上不能互换.支持O
  • 一.权限表mysql数据库中的3个权限表:user 、db、 host权限表的存取过程是:1)先从user表中的host、 user、 pa
  • 为什么我写ASP分页教程要提到AJAX呢,因为我们要多练习一下编程过程中,结构化的重要性. 再加上很多朋友对分页感到很高深,所以一直都不敢去
  • 马上就要过节了,想把自己的项目搞得酷炫一些,对整个网站的按钮添加图标、飘花效果、首屏大图展示、顶部导航背景图,于是就写了这一遍文字,如有兴趣
  • 对于大前端来说,JS可谓是我们的神器,从页面的效果到数据的传递,再到后台的业务,无处不充斥着JS的身影,但是万能的JS也有贪玩的时候,某一时
  • NOMONEYDAY123114321-45324212-102250331008为了符合阅读习惯,最终报表希望是如下格式:NOMONTUE
  • DIV与TABLE本身并不存在什么优缺点,所谓web标准只是推荐的是正确的使用标签,好比说:DIV用于布局,而TABLE则本来就是转二维数据
  • 2007年1月,国务院 * 了中央&ldquo;一号文件&rdquo;,文件中对加快农业信息化建设有了更明确的部署,为新农村建
  • Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59
  • 值类型和引用类型值类型:int、float、bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变
  • 最近笔者学会了用FrontPage XP做网页,心理特高兴,非常想把我在制作主页过程中的一些经验和大家交流交流、切磋切磋,我们一起来看看吧。
  • 这几天忙个合作,开发iPhone版校友录。用了很久的iPhone,为它量身定制一套页面还是头一次,好在限制不是很多,会写html基本呈现就不
  • 对于中小型个人、企业网站来说,MySQL数据库或许是目前数据库的最完美实施解决方案了。在不变更服务器硬件的前提下,一个经过良好架构,优化后的
  • 调度和锁定在很多客户一起查询数据表时,如果使客户能最快地查询到数据就是调度和锁定做的工作了。在MySQL中,我们把select操作叫做读,把
  • 本文实例展示了PHP实现的格鲁斯卡尔算法(kruscal)的实现方法,分享给大家供大家参考。相信对于大家的PHP程序设计有一定的借鉴价值。具
  • golang并没有像C语言一样提供三元表达式。三元表达式的好处是可以用一行代码解决原本需要多行代码才能完成的功能,让冗长的代码瞬间变得简洁。
  • 打开网页,然后将javascript:document.body.contentEditable='true'; 
手机版 网络编程 asp之家 www.aspxhome.com