python特效之字符成像详解

 更新时间:2022年01月11日 15:54:00   作者:autofelix  
这篇文章主要为大家介绍了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()

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • uwsgi启动django项目的实现步骤

    uwsgi启动django项目的实现步骤

    本文主要介绍了uwsgi启动django项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 基于Python socket的端口扫描程序实例代码

    基于Python socket的端口扫描程序实例代码

    这篇文章主要介绍了基于Python socket的端口扫描程序实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 基于python图像处理API的使用示例

    基于python图像处理API的使用示例

    这篇文章主要介绍了基于python图像处理API的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Python如何定义有默认参数的函数

    Python如何定义有默认参数的函数

    这篇文章主要介绍了Python如何定义有默认参数的函数,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
    2020-08-08
  • 基于Python实现迪杰斯特拉和弗洛伊德算法

    基于Python实现迪杰斯特拉和弗洛伊德算法

    这篇文章主要为大家详细介绍了基于Python实现迪杰斯特拉和弗洛伊德算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • python小程序基于Jupyter实现天气查询的方法

    python小程序基于Jupyter实现天气查询的方法

    这篇文章主要介绍了python小程序基于Jupyter实现天气查询的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • python Django 反向访问器的外键冲突解决

    python Django 反向访问器的外键冲突解决

    这篇文章主要介绍了python Django 反向访问器的外键冲突解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python 字典的使用详解及实例代码

    Python 字典的使用详解及实例代码

    今天小编帮大家简单介绍下Python的一种数据结构: 字典,字典是 另一种可变容器模型,且可存储任意类型对象,它用于存放具有映射关系的数据,通读本篇对大家的学习或工作具有一定的价值,需要的朋友可以参考下
    2021-11-11
  • 跟老齐学Python之重回函数

    跟老齐学Python之重回函数

    在本教程的开始部分,就已经引入了函数的概念:《永远强大的函数》,之所以那时候就提到函数,是因为我觉得函数之重要,远远超过一般。这里,重回函数,一是复习,二是要在已经学习的基础上,对函数有更深刻的理解。
    2014-10-10
  • python函数不定长参数使用方法解析

    python函数不定长参数使用方法解析

    这篇文章主要介绍了python函数不定长参数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论