使用Pillow来处理图像的基础教程:

参考教程:http://pyhome.org/pythonbian-cheng-zhong-shi-yong-pillowlai-chu-li-tu-xiang-de-ji-chu-jiao-cheng-/

Image类
1. 打开一张图片

>>> from PIL import Image
>>> im = Image.open("ascii_dora.png")

如果打开成功,返回一个Image对象,可以通过对象属性检查文件内容

>>> print(im.format,im.size,im.mode)
('PNG', (153, 153), 'RGBA')

format属性定义了图像的格式,如果图像不是从文件打开的,那么该属性值为None;size属性是一个tuple,表示图像的宽和高(单位为像素);mode属
性为表示图像的模式,常用的模式为:L为灰度图,RGB为真彩色,CMYK为pre-press图像。

如果文件不能打开,则抛出IOError异常。

>>> im.show()   #显示图片,先将图像保存为一个临时文件,然后使用xv显示>>> im.save("new.jpg")   #保存图片,save函数的第二个参数可以用来指定图片格式,如果文件名中没有给出一个标准的图像格式,那么第二个参数是必须的。

使用thumbnail()方法创建缩略图

>>> size=(50,50)   #设置缩小后的尺寸
>>> im.thumbnail(size)   #缩略函数
>>> im.save("thumbnail.jpg")   #保存
>>> box=im.copy()   #直接复制图片
>>> box
<PIL.Image.Image image mode=RGBA size=50x50 at 0x7FD046DA8850>

从图片中复制子图像
坐标中的数字单位为像素点,坐标原点为左上角(0,0),区域由4-tuple决定,该tuple中信息为(left, upper, right, lower)
其实就是取左上角(left,upper)沿横竖方向到达右下角(right,lower)路线围成的矩形区域

>>> box = (100, 100, 400, 400)
>>> region = im.crop(box)   #按box的设置从im中截取区域

处理子图,粘贴回原图
将子图paste回原图时,子图的region必须和给定box的region吻合

>>> region = region.transpose(Image.ROTATE_180)
>>> im.paste(region, box)

图片转字符串

来源:https://link.zhihu.com/?target=https%3A//www.shiyanlou.com/courses/370

效果:

代码:

from PIL import Image       #从PIL中倒入Image类
import argparse             #argparse模块用于命令行参数控制parser=argparse.ArgumentParser()
parser.add_argument('file')     #增加参数file
parser.add_argument('-O','--output')    #参数--output
parser.add_argument('--width',type=int,default=80)  #参数--width
parser.add_argument('--height',type=int,default=80) #参数--height
args=parser.parse_args()        #获取命令行参数IMG=args.file
WIDTH=args.width
HEIGHT=args.height
OUTPUT=args.outputascii_char=list("$@B%8&WM#*oahkbdpqwmZo0QLCJUYXZcvunxrjft/\|()1{}[]?-_=~<>i!lI;:\"^`'.")      #字符串列表def get_char(r,g,b,alpha=256):  #将像素转换为字符函数if alpha==0:return ' 'length=len(ascii_char)gray=int(0.2126*r+0.7152*g+0.0722*b)  #RGB转换为灰度unit=(256.0+1)/length      #return ascii_char[int(gray/unit)]    #获取该灰度在字符串列表中所对应的字符if __name__=='__main__':im=Image.open(IMG)      #打开图片args.file,返回Image对象im=im.resize((WIDTH,HEIGHT),Image.NEAREST)   #重置尺寸txt=""for i in range(HEIGHT):      #HEIGHT,WIDTH默认是80像素for j in range(WIDTH):txt+=get_char(*im.getpixel((j,i)))  #获取像素,计算对应字符,保存到txt中,获取像素点这里用的是getpixel((i,j))函数txt+='\n'       #每到行尾换行print txt     #输出if OUTPUT:     with open(OUTPUT,'W') as f:f.write(txt)     #保存到文本中else:with open("output.txt",'w') as f:f.write(txt)

使用python pillow 图片转字符串相关推荐

  1. python pillow 图片处理

    python pillow 图片处理 视频 https://www.bilibili.com/video/BV1jK4y187yB?p=42 内容 #!/usr/bin/env pyth

  2. python 将图片与字符串相互转换

    import base64 image='1.jpg'#将图片encode为二进制字符串方法一 with open(image,'rb') as f:str=base64.b64encode(f.re ...

  3. python pillow 图片裁剪

    1.打开图片 from PIL import Image # 打开图像文件,注意是当前路径,比如这个py文件在桌面存放,那图片也放桌面 im = Image.open('连连看.png') #顺便看看 ...

  4. Python 小把戏之图片转字符串

    Python 小把戏之图片转字符串 #! /usr/bin/python3 # -*- coding: UTF-8 -*-from PIL import Image import argparse i ...

  5. Python 图片与字符串互转

    Python 图片与字符串互转 1. 图片转化为base64字符串 2. base64字符串转化为图片 3. 图片转化为字符串 4. 字符串转化为图片 1. 图片转化为base64字符串 import ...

  6. Python实现图片裁剪的两种方式——Pillow和OpenCV

    在这篇文章里我们聊一下Python实现图片裁剪的两种方式,一种利用了Pillow,还有一种利用了OpenCV.两种方式都需要简单的几行代码,这可能也就是现在Python那么流行的原因吧. 首先,我们有 ...

  7. python 字符串转图片_python用base64库进行图片与字符串的转换

    # encoding:utf-8 import matplotlib.pyplot as plt import cv2 from io import BytesIO import base64 # 二 ...

  8. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  9. 基于Python改变图片像素大小

    用python改变图片像素大小非常快速,编辑好代码运行程序不到1秒就产生结果. 有的网站上传照片时,限定了照片像素大小,这时候小小一份代码就可以快速解决我们的需求. 下面代码需要修改main函数中的f ...

最新文章

  1. form表单序列化去除空值
  2. Http中的Post和GET请求的区别
  3. 【BZOJ-1127】KUP 悬线法 + 贪心
  4. App Store 扣费 知识产权 备忘
  5. python遍历二维数组_在Python中遍历二维数组?
  6. php rijndael,将PHP Rijndael算法重写为Java(Android)
  7. 腾讯:人们回归工作导致四季度游戏收入减缓
  8. 关于float的内部结构
  9. fianl属性 java_Java反射如何有效的修改final属性值详解
  10. Atitit springboot 上传与下载总结 上传 使用file对象的transferTo保存方法最简单 @RequestMapping(value = /up, method = R
  11. 通过TXT文件批量制作ITF-14条码
  12. Apache Solr任意文件读取漏洞复现
  13. 8.2 Affine independence (仿射无关性)
  14. 干细胞膜PLGA纳米颗粒|MDA-MB-231乳腺癌细胞膜修饰纳米囊泡|干细胞膜包覆纳米载体
  15. vert.x笔记:4.vert.x中调用spring服务
  16. php react ssr,React-SSR
  17. 计算机ms高级应用科目一 科目二考什么,学车考什么?科目一、科目二、科目三、科目四,全部都在这!...
  18. 配置puppeteer executablePath的正确姿势
  19. win7-cmd命令大全
  20. 人生苦短,我用python Ⅱ (字符串练习题)

热门文章

  1. 一站式开发一个安卓APP-原型设计篇
  2. SH86260 芯片 苹果夹子 mp3 修复....
  3. 微机原理与接口技术思维导图
  4. 安卓手机主题软件_安卓手机直播软件:绝影Live
  5. 计算机组成原理移位图,计算机组成原理移位运算实验报告.doc
  6. 密码学之数字信封 Digital_Envelope(project完整代码)
  7. 计算机毕业论文选题推荐|软件工程|系列二
  8. Windows Server 2008 显示隐藏文件 扩展名 和隐藏的文件
  9. 从TOP25榜单,看半导体之变
  10. ClassLoader整理总结