美文网首页我爱编程
代码绘制一只小猪佩奇---python篇

代码绘制一只小猪佩奇---python篇

作者: wujingwin | 来源:发表于2018-04-12 21:28 被阅读0次

今天教大家用python的pillow包来绘制小猪佩奇,python的安装就不用多说了,直接上代码吧

0、首先当然是安装pillow包啦。

关于pillow库的安装有几种方式
最常使用的是pip安装

$ pip install pillow

2、通过pycharm安装

1、了解一下pillow库的基本使用

#导入模块
from PIL import Image
#读取文件
img = Image.open('test.jpg')
#保存文件
#img.save(filename,format)
img.save(filename,"JPEG")
img_mode = img.mode
#图片模式的转换
img = img.convert("L")  #转化成灰度图像
#获取每个坐标的像素点的RGB值
r,g,b = img.getpixel((j,i))
#重设图片大小
img = img.resize(width,height)
#创建缩略图
img.thumbnail(size)

#获取图片大小
(width,height) = img.size
#获取图片的源格式
img_format = img.format
#获取图片模式,有三种模式:L(灰度图像),RGB(真彩色)和CMYK(pre-press图像)

2、开始绘画

首先是要有一张图片喽,准备一一张小猪佩奇的照片: timg.jpg
然后就是放大招是时候了;

(原理简述:就是获取图上每一点的RGB值,然后根据这三种值确定这一点采用什么字符,其实根据RGB来确定的交灰值,所以可以将图片转化成灰度图片,来直接获取每一点的灰度,或者通过灰度的转换公式来使得RGB三值转化成灰度当然了,深度的原理我也不太懂,这里有链接,有兴趣的可以看一下大神们的解释)
上代码:

#coding:utf-8
from PIL import Image
#要索引的字符列表
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
length = len(ascii_char)
img = Image.open('timg.jpg')      #读取图像文件
(width,height) = img.size
img = img.resize((int(width*0.5),int(height*0.2)))  #对图像进行一定缩小,图片的大小可以根据上传图片的大小来按需调节,
print(img.size)
def convert(img):
    img = img.convert("L")  # 转为灰度图像
    txt = ""
    for i in range(img.size[1]):
        for j in range(img.size[0]):
            gray = img.getpixel((j, i))     # 获取每个坐标像素点的灰度
            unit = 256.0 / length
            txt += ascii_char[int(gray / unit)] #获取对应坐标的字符值
        txt += '\n'
    return  txt

def convert1(img):
    txt = ""
    for i in range(img.size[1]):
        for j in range(img.size[0]):
            r,g,b = img.getpixel((j, i))           #获取每个坐标像素点的rgb值
            gray = int(r * 0.299 + g * 0.587 + b * 0.114)   #通过灰度转换公式获取灰度
            unit = (256.0+1)/length
            txt += ascii_char[int(gray / unit)]  # 获取对应坐标的字符值
        txt += '\n'
    return txt

txt = convert(img)
f = open("03_convert.txt","w")
f.write(txt)            #存储到文件中
f.close()

然后上效果图
pig.png
还是蛮像的嘛,
over

相关文章

  • 代码绘制一只小猪佩奇---python篇

    今天教大家用python的pillow包来绘制小猪佩奇,python的安装就不用多说了,直接上代码吧 0、首先当然...

  • 绘制小猪佩奇(Python)

    """绘制小猪佩奇"""from turtle import * def nose(x,y):"""画鼻子"""p...

  • 用 Python 画小猪佩奇

    在微信上看到一个未完成的小猪佩奇,使用 python 内置的 turtle 绘制,代码是我整理完善的,直接献上。

  • 助人为乐 -

    从前有一只小猪叫小猪佩奇,小猪佩奇非常的自私。东西都是自己吃的,别人要是想要小猪佩奇帮助自己,小猪佩奇都是一口拒绝...

  • 助人为乐

    从前有一只小猪叫小猪佩奇,小猪佩奇非常的自私。东西都是自己吃的,别人要是想要小猪佩奇帮助自己,小猪佩奇都是一口拒绝...

  • xmind

    一、小猪佩奇 二、列表 1.有序*无序 三、图片 四、引用 小猪佩奇 五、代码 六、加粗和斜体 小猪,佩奇 七、表...

  • 小猪佩奇都没一个,你怎么好意思叫社会人?

    “小猪佩奇身上纹,掌声送给社会人” #李晨 小猪佩奇# #赵丽颖 小猪佩奇# #戚薇 小猪佩奇#,#小猪佩奇#这个...

  • 浅谈“社会佩琪”

    “小猪佩奇身上纹,掌声送给社会人”这句话红遍了大街小巷,但小猪佩奇只是一只长相有些奇怪的猪而已啊? 《小猪佩奇》是...

  • @海尔兄弟 隔壁小猪佩奇这么火,你还不努力下!

    小猪佩奇穿上身,掌声献给社会人。小猪佩奇纹身,小猪佩奇手表,小猪佩奇表情包,小猪佩奇已经火遍了抖音和朋友圈,而优衣...

  • python绘制《啥是佩奇》--过年回家篇

    2019.1.18拥抱简书,用python语言写的绘制小猪佩奇来蹭下热度。 身为程序员,过年抢车票,难还是不难?作...

网友评论

    本文标题:代码绘制一只小猪佩奇---python篇

    本文链接:https://www.haomeiwen.com/subject/hsofkftx.html