python抓取图片数字_教大家用Python制作传说中的“数字屏幕”

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:DavidLiHX

pillow库

这次我们还是要用到我们上次说的pillow库

pillow库使用pip安装

pip install pillow

pip install pillow -i “https://pypi.doubanio.com/simple/”

代码介绍

跟大家介绍一下,我们所说的“数字屏幕”是指把图片转换成字符画,这里的

字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符能表现一种颜色,字符的种类越多,可以表现的颜色也越多,图片也会更有层次感。

最终显示的是黑白色的字符画,那么彩色的图片怎么转换成黑白的呢?这里就需要了解灰度值的概念了。

灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像。

我们利用下面的公式将像素的RGB值转换成灰度值:

gray = 0.2126 * r + 0.7152 * g + 0.0722 * b

用不同的字符代表不同的灰度值,字符的种类和数量可以根据自己需要的效果进行调整,最好从前往后可以看到明显的变化,最后一个字符为空格符最佳:

ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

|代码实现

from PIL import Image

IMG='D:\Code\python\\test.png'

WIDTH=60

HEIGHT=45

ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

#将256灰度映射到70个字符上

def get_char(r,g,b,alpha=256):#alpha透明度

if alpha==0:

return ' '

length=len(ascii_char)

gray=int(0.2126*r+0.7152*g+0.0722*b)#计算灰度

unit=(256.0+1)/length

return ascii_char[int(gray/unit)]#不同的灰度对应着不同的字符

#通过灰度来区分色块

if __name__=='__main__':

im=Image.open(IMG)

im=im.resize((WIDTH,HEIGHT),Image.NEAREST)

txt=""

for i in range(HEIGHT):

for j in range(WIDTH):

txt+=get_char(*im.getpixel((j,i)))

txt+='\n'

print (txt)

#写入文件

with open("output.txt",'w') as f:

f.write(txt)

下面我们生成数字屏幕:

生成结果:

PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取

可以免费领取源码、项目实战视频、PDF文件等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、软件简介 FastStone Capture 是一款出色的屏幕捕捉(截图)软件,它集图像捕捉、浏览、编辑、视频录制等功能于一身,功能完善、使用方便,值得推荐! 软件提供多种捕捉方式(如:活动窗口、指定窗口/对象、矩形区域、手绘区域、整个屏幕、滚动窗口等),提供屏幕录像机、放大镜、拾取颜色、标尺等辅助功能,支持快捷键操作 对于捕捉到的图像,软件提供了多种处理方式,如:在编辑器打开;存入剪贴板或文件;发送到打印机、邮件、WORD、Powerpoint 甚至是网络 FTP 等。用户还可以通过文件名称模板定制文件名以自动保存捕捉内容,支持BMP、GIF、JPG、PNG、TIF、PDF等文件格式,输出文件夹位置也可以自行设定。 软件内置功能完善的图像编辑器,支持几乎所有主流图片格式,除提供缩放、旋转、剪切、格式转换、调整大小等基本功能外,还可向图像加入标题、边框和水印、文本、线条、图形等内容,并可调整图像颜色,进行多种特效处理。 二、版本特色 本版本基于官方英文原版汉化,集成注册文件,并优化了部分设置。相对于其他版本,具有更新及时、汉化彻底、使用方便等特点。希望大家喜欢! 三 、特别声明: 1、本软件相关资源收集自互联网,版权归其开发厂商及作者所有。 2、本软件仅限于个人学习交流,请勿用于任何形式商业用途。 3、您必须自行承担使用过程所有可能引起的后果及损失。 4、使用过程若有意见或建议,请及时反馈和指正。 软件名称:FastStone Capture 产品版本:8.4 官方主页:http://www.faststone.org 软件汉化:飞扬时空 博客地址:http://iyoung.blog.163.com/blog/static/16678880720106161648206/ 版本性质:汉化版 更新日期:2016年1月16日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值