python如何将图片转换为字符图片

yipeiwu_com6年前Python基础

简介

一个简单的python程序,将图片转换为字符图片。
(为了简便,很多参数写死了,自己看着改吧。 (←∀←))

正文

原图(侵删)

结果图

源码

[更多细节]——>戳这里

#-*- coding: UTF-8 -*- 
from PIL import Image 
from PIL import ImageDraw 
from PIL import ImageFont
import matplotlib.pyplot as plt
import numpy as np
import time

def happyNewYear(srd_img_file_path, dst_img_file_path = None, scale = 2, sample_step = 3):
 start_time = int(time.time())

 #读取图片信息
 old_img = Image.open(srd_img_file_path)
 pix = old_img.load()
 width = old_img.size[0]
 height = old_img.size[1]
 print ("width:%d, height:%d" % (width, height))

 #创建新图片
 canvas = np.ndarray((height*scale, width*scale, 3), np.uint8)
 canvas[:, :, :] = 255
 new_image = Image.fromarray(canvas)
 draw = ImageDraw.Draw(new_image)

 #创建绘制对象
 font = ImageFont.truetype("consola.ttf", 10, encoding="unic")
 char_table = list('happy new year ')
 # font = ImageFont.truetype('simsun.ttc', 10)
 # char_table = list(u'新年快乐')

 #开始绘制
 pix_count = 0
 table_len = len(char_table)
 for y in range(height):
  for x in range(width):
   if x % sample_step == 0 and y % sample_step == 0:
    draw.text((x*scale, y*scale), char_table[pix_count % table_len], pix[x, y], font)
    pix_count += 1

 # 保存
 if dst_img_file_path is not None:
  new_image.save(dst_img_file_path)

 print("used time : %d second, pix_count : %d" % ((int(time.time()) - start_time), pix_count))
 print(pix_count)
 new_image.show()


happyNewYear("input.jpg", "output.jpg")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

简单解析Django框架中的表单验证

我们的搜索示例仍然相当地简单,特别从数据验证方面来讲;我们仅仅只验证搜索关键值是否为空。 然后许多HTML表单包含着比检测值是否为空更为复杂的验证。 我们都有在网站上见过类似以下的错误提...

简单谈谈python基本数据类型

int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 在64位系统上,整数的位数为64位,取值范围为...

Python中如何优雅的合并两个字典(dict)方法示例

前言 字典是Python中最强大的数据类型之一,本文将给大家详细介绍关于Python合并两个字典(dict)的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧。 一行...

python实现微信远程控制电脑

python实现微信远程控制电脑

首先,我们要先看看微信远程控制电脑的原理是什么呢? 我们可以利用Python的标准库控制本机电脑,然后要实现远程的话,我们可以把电子邮件作为远程控制的渠道,我们用Python自动登录...

python 通过 socket 发送文件的实例代码

python 通过 socket 发送文件的实例代码

目录结构: client: #!/usr/bin/env python # -*-coding:utf-8 -*- import socket, struct, json down...