Python特效之文字成像方法详解

 更新时间:2022年01月14日 11:17:30   作者:autofelix  
文字成像,即将原图片经过 python 处理后,生成完全由纯文字组成的图像。本文将具体为大家介绍如何通过Python实现这一效果,感兴趣的可以学习一下

一、特效预览

处理前

处理后

细节放大后

二、程序原理

1.输入你想隐藏的文字

2.然后写到另一张跟照片同等大小的空白纸张上

3.将相同位置的文字的颜色用照片上相同位置的颜色填充即可

4.然后生成新的图片你听懂了吗 

三、程序源码

#!/usr/bin/env python
# encoding: utf-8
 
from PIL import Image, ImageDraw, ImageFont
 
class wordPicture:
    '''
     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.font_size = 7
        self.picture = 'assets/picture.jpeg'
 
    def hello(self):
        '''
        This is a welcome speech
        :return: self
        '''
        print('*' * 50)
        print(' ' * 20 + '文字成像')
        print(' ' * 5 + 'Author: autofelix  Date: 2022-01-06 13:14')
        print('*' * 50)
        return self
 
    def run(self):
        '''
        The program entry
        '''
        word = input('请输入你想说的:') or '我钟意你'
 
        resource = Image.open(self.picture)
        img_array = resource.load()
 
        image_new = Image.new('RGB', resource.size, (0, 0, 0))
        draw = ImageDraw.Draw(image_new)
        font = ImageFont.truetype('/System/Library/Fonts/PingFang.ttc', self.font_size)
 
        yield_word = self.character_generator(word)
 
        for y in range(0, resource.size[1], self.font_size):
            for x in range(0, resource.size[0], self.font_size):
                draw.text((x, y), next(yield_word), font=font, fill=img_array[x, y], direction=None)
 
        image_new.convert('RGB').save('result.jpeg')
 
    def character_generator(self, text):
        while True:
            for i in range(len(text)):
                yield text[i]
 
 
if __name__ == '__main__':
    wordPicture().hello().run()

到此这篇关于Python特效之文字成像方法详解的文章就介绍到这了,更多相关Python文字成像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 自定义Django默认的sitemap站点地图样式

    自定义Django默认的sitemap站点地图样式

    这篇文章主要介绍了自定义Django默认的sitemap站点地图样式,通过代码给大家介绍了使用Django的sitemap功能,代码很简单非常不错对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 跟老齐学Python之折腾一下目录

    跟老齐学Python之折腾一下目录

    本讲只关注os.path,真所谓“弱水三千,只取一瓢”,为什么这么偏爱它呢?因为它和前面已经讲过的文件操作进行配合,就能够随心所欲操作各个地方的文件了
    2014-10-10
  • Python实现日期字符串转换为指定格式的日期

    Python实现日期字符串转换为指定格式的日期

    在Python编程中,日期处理是一个常见的任务,本文将详细介绍如何在Python中将日期字符串转换为指定格式的日期,感兴趣的小伙伴可以学习一下
    2024-04-04
  • Python自动化构建工具scons使用入门笔记

    Python自动化构建工具scons使用入门笔记

    这篇文章主要介绍了Python自动化构建工具scons使用入门笔记,本文讲解了安装scons、scons常用命令、scons使用示例等内容,需要的朋友可以参考下
    2015-03-03
  • Pyscript使用本地Pyodide配置步骤

    Pyscript使用本地Pyodide配置步骤

    PyScript是“一个用于在 HTML(如 PHP)中交错 Python 的系统,这篇文章主要介绍了Pyscript使用本地Pyodide配置方法,需要的朋友可以参考下
    2022-12-12
  • python环境的报错解决方法

    python环境的报错解决方法

    这篇文章主要为大家介绍了python环境的报错解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 如何将Python字符串转换为JSON的实现方法

    如何将Python字符串转换为JSON的实现方法

    在本教程中,你将学习JSON的基础知识,它是什么,常用在哪里以及它的语法,还将看到如何在Python中将字符串转换为JSON,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • SpringBoot中的@MessageMapping注解详解

    SpringBoot中的@MessageMapping注解详解

    这篇文章主要介绍了SpringBoot中的@MessageMapping注解详解,Spring Boot 提供了对 WebSocket 的支持,其中 @MessageMapping 注解是一个常用的注解,它可以将一个 Java 方法标记为 WebSocket 的消息处理器,需要的朋友可以参考下
    2023-08-08
  • Python实现k-means算法

    Python实现k-means算法

    这篇文章主要为大家详细介绍了Python实现k-means算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Python的Socket编程过程中实现UDP端口复用的实例分享

    Python的Socket编程过程中实现UDP端口复用的实例分享

    这篇文章主要介绍了Python的Socket编程过程中实现UDP端口复用的实例分享,文中作者用到了Python的twisted异步框架,需要的朋友可以参考下
    2016-03-03

最新评论