嘿嘿嘿!!!

我是只可耐的测试妹子,喜欢玩也喜欢学习,之前同事们建议我开通GitHub来记录学习心得以及项目代码,我也觉得很有必要!!so

最近在学习python,写了一个有趣的关于图片处理的程序,虽然很简单拙劣但是还是满满的开心,希望以后能经常在github上面记录关于学习的有趣事情!

so分割线||我要开始po这个简单有趣的程序了,了解程序请往下看:

首先打开cmd:

cmd 中pip install pillow 安装这个图形处理库

打开pycharm新建项目 ImageToStr.py

from PIL import Image #引入图形处理包Image类

image_name = 'IMG_20180414_112918.jpg'#获取图片这里图片放入这个项目文件夹中

img = Image.open(image_name)#使用对象读取图片

img = img.convert('L')#图片转换成灰度模式 img.size img.mode img.show()获取图片大小 模式

img.save('图片名称') #保存该转换成灰度模式的图片

w, h = img.size #获取缩放比例的图片

if w > 100:

h = int((100 / w) * h / 2)

w = 100

# 重置图片大小且为防止图片锯齿加一个滤镜

img=img.resize((w,h),Image.ANTIALIAS)

data=[]

# 替换字符的列表

chars=['',',','?','。','.','N','m']

# 根据图片的宽度和高度遍历像素点并取出每个像素点的颜色值

for i in range(0,h):

line=''

for j in range(0,w):

# 获取像素点的值

pi=img.getpixel((j,i))

# 用字符串替换像素点的颜色

for k in range(0,8):

if pi<(k+1)*32:

line += chars[7-k]

break

data.append(line)#把所有数据一次循环存入data中

f=open(image_name+'.txt','w')#以写的方式新建并打开一个文本

for d in data:

print(d,file=f) 循环读取data数据并存入该文档

f.close()

img.show()

_____________________分割线!!!!!!!!!!

还可以对该零零散散的代码重构,把保存和获取字符写成函数然后调用整洁简单并且能重复利用,并且可以加入入口命令。

代码如下

from PIL import Image

def save(image_name,data):

f=open(image_name+'.txt','w')#以写的方式新建并打开一个文本

for d in data:

print(d,file=f) 循环读取data数据并存入该文档

f.close()

def get_chars(pi):

chars=['',',','?','。','.','N','m']

for k in range(0,8):

if pi<(k+1)*32:

return chars[7-k]

if __name__="__main__’:

image_name = 'IMG_20180414_112918.jpg'#获取图片这里图片放入这个项目文件夹中

img = Image.open(image_name)#使用对象读取图片

img = img.convert('L')#图片转换成灰度模式 img.size img.mode img.show()获取图片大小 模式

img.save('图片名称') #保存该转换成灰度模式的图片

w, h = img.size #获取缩放比例的图片

if w > 100:

h = int((100 / w) * h / 2)

w = 100

# 重置图片大小且为防止图片锯齿加一个滤镜

img=img.resize((w,h),Image.ANTIALIAS)

data=[]

# 替换字符的列表

# 根据图片的宽度和高度遍历像素点并取出每个像素点的颜色值

for i in range(0,h):

line=''

for j in range(0,w):

# 获取像素点的值

pi=img.getpixel((j,i))

# 用字符串替换像素点的颜色

for k in range(0,8):

if pi<(k+1)*32:

line +=get_chars(pi)

break

data.append(line)#把所有数据一次循环存入data中

save(image_name,data)

酱紫就可以了,哇咔咔!!!

下面看看我处理过的图片效果吧:

是不是很有趣啊,快动手试试吧!!!

python有趣小程序-第一个有趣的python小程序相关推荐

  1. Python之路【第一篇】:Python简介和入门

    Python之路[第一篇]:Python简介和入门 Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗 ...

  2. python做运动控制_第一课:用Python操控小龟小车运动

    欢迎来到小龟的课堂,今天我们讲如何用小龟小车的车载Python控制小车运动. 如果小伙伴还不会使用小龟小车的Python编辑器的话,可以阅读这篇教程<如何使用小龟小车的Python编辑器> ...

  3. 【Python数据科学】第一章 IPython 超越Python

    1.IPythonde 的帮助和文档 1.1.用符号 ?获取文档 help(len) Help on built-in function len in module builtins:len(obj, ...

  4. Python基础系列教程 第一节 安装运行Python

    安装Python解释器 Python 是一门解释性脚本语言,因此要想让你编写的代码得以运行,需要先安装 CPython 解释器. 根据你电脑的系统以及位数不同,安装步骤也有所差异. Windows 系 ...

  5. Python之路【第一篇】:Python基础(2)

    input和 raw_input python 3.5里面 input输入不论输入的是数字还是字符串, 都被默认为是字符串,如果要输入数字需要将字符串转换成数字,使用int方法. python 2.7 ...

  6. 爬虫小白第一课、从安装python到写出第一个爬虫程序、Pycharm安装详解

    本文原文链接 ↑↑↑ 目录 1什么是python 2怎么安装python 3安装python编辑器 4"写"你的第一个爬虫 5小结 python爬虫现在挺火,一方面全民学pytho ...

  7. python有趣的小项目-有趣的十个Python实战项目,让你瞬间爱上Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  8. python有趣的小项目-10 个最值得 Python 新人练手的有趣项目

    原标题:10 个最值得 Python 新人练手的有趣项目 作者 | Claire D. Costa 编译 | Wendy 有很多 Python 新手留言问:"Python 入门很久了,但项目 ...

  9. python新年有趣代码_搞几款由“Python”语言编写的“有趣、恶搞、好玩”的程序代码!...

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 为提高大家对"Python"编程语言的学习兴趣,今天给大家分享几款有趣的Python程序代 ...

最新文章

  1. Struts的select两种遍历方法
  2. arx对正在操作的文件进行保存
  3. pycharm 运行程序时提示错误信息:ModuleNotFoundError: No module named 'pytest' 解决方法
  4. 【C++提高班】c++数组遍历比较相邻的数值
  5. mysql5.7开启远程连接
  6. cocos2dx + vs安装使用
  7. 文件夹的位置_感觉电脑变卡了?删除这5个文件夹 C盘立马清爽
  8. Kalman Filter : 理解卡尔曼滤波的三重境界
  9. java 中的jframe_java中JFrame是什么
  10. 路径标记语法 in Windows Presentation Foundation(WPF)
  11. python集合类型中的元素是有序的_Python数据类型之集合set
  12. 中国统计网又出干货了——会员分层与顾客忠诚度分析
  13. java设置请求头_前端需要知道的 HTTP 安全头配置
  14. 【精品】好用的验证码工具类VerifyCodeUtils
  15. 父母生命末期,是在医院昂贵痛苦地治疗,还是接老人回家亲情陪伴
  16. 【回文串问题】分割回文串
  17. ios安卓模拟器_iOS模拟器来了?苹果大一统时代会对游戏行业造成哪些冲击?
  18. c#定义一个接口IShape,其中包括方法Area()用来计算面积,
  19. Ubuntu 10.10下编译安装无线网卡
  20. day15、16:Python的魔方方法

热门文章

  1. C++经典面试题(基础算法版)
  2. 剑指offer所有的题目总结(转)
  3. Python数据可视化之Pygal(雷达图)
  4. 吴恩达深度学习笔记(十一)—— dropout正则化
  5. 关于OCR,做个记录。
  6. ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路
  7. Leetcode OJ: Maximun Subarray
  8. C#时间的味道——任时光匆匆我只在乎你
  9. java中各种运算符
  10. Yahoo的14条准则