Python图片处理库之PIL
这个模块对于Python2.7 的windows64位电脑而言,还真的是不好找啊。这里分享一个下载链接吧,需要的朋友可以下载下来。PIL For Windows64 Python2.7下面分享一下这个库的简单的使用。
安装
上面的这个超链接是一个exe文件,点击安装的时候,会自动的探测你电脑上Python的安装位置,所以很方便。就不再过多的叙述了。
很多的小例子
这里是一些常用的相关的函数的使用,记得在你的代码的目录下面放一张图片,不然会报错的。
第一个小例子Firsttest.py
# coding:utf-8
import Image
"""
format: 识别图像的源格式,如果不是从文件中读取的,则被设置为None值
size: 返回的一个元组,有两个元素,其值为像素意义上的宽和高
mode: RGB,此外还有L(Luminance),CTMK(pre-press image,呵呵我也不知道这是个神马)
"""
image = Image.open('hu.jpg')
print image.format, image.size, image.mode
# 用于将图片 使用本地的图片查看器打开
image.show()
手动制作一张图片
# coding:utf-8
import Image
image = Image.new("RGBA",(640,480),(123,213,123))
image.save('CreatedByPython.jpg','jpeg')
打开,保存操作
# coding:utf-8
import Image
"""
crop: 从原图层上剪切下来一个给定的矩形大小,此函数接收一个四元素的元组作为其参数,分别代表左上右下,原点为左上角
paste: 粘贴的含义,将剪切到的图像粘贴到某一个位置
merge: 合并,图像的合并操作
"""
image = Image.open('hu.jpg')
box = (100, 100, 300, 300)
mycrop = image.crop(box)
# # mycrop.show()
# mycrop.save('hu_crop.jpg')
#
# # 旋转180° 的图像显示
# # mycrop.transpose(Image.ROTATE_180).show()
#
# # 将剪切板上的图像粘贴到某张图片上,粘贴的位置根据box而定
# image.paste(mycrop, box)
# image.show()
mycrop.rotate(Image.ROTATE_180)
image.paste(mycrop,box)
image.save('pasted.jpg','jpeg')
对图片上的每个像素点进行操作
# coding:utf-8
import Image
"""
image.point(function) 这个function接收一个参数,且对图像的每一个点都会进行这个函数的变换
"""
image = Image.open('hu.jpg')
image = image.point(lambda i : i * 1.5)
image.show()
旋转图片
# coding:utf-8
import Image
image = Image.open("hu.jpg")
# 下面的几行代码可以较好的呈现出图片的变化情况
image.rotate(45).show()
image.rotate(90).show()
image.rotate(180).show()
image.rotate(270).show()
image.rotate(360).show()
缩放图片
# coding:utf-8
import Image
import glob, os
size = 128, 128
image = Image.open('hu.jpg')
# 调用thumbnail方法完成对图片的处理
image.thumbnail(size, Image.ANTIALIAS)
image.save("hu_scale.jpg")
图层通道操作
#coding:utf-8
import Image
"""
r,g,b=im.split()#分割成三个通道,此时r,g,b分别为三个图像对象。
im=Image.merge("RGB",(b,g,r))#将b,r两个通道进行翻转。
"""
image = Image.open('hu.jpg')
r,g,b = image.split()
r.save('Split/r.jpg','jpeg')
g.save('Split/g.jpg','jpeg')
b.save('Split/b.jpg','jpeg')
image = Image.merge("RGB",(b,g,r))
image.save('Split/mergedByBGR.jpg','jpeg')
image = Image.merge("RGB",(g,r,b))
image.save('Split/mergedByGRB.jpg','jpeg')
image = Image.merge("RGB",(r,g,b))
image.save('Split/mergedByRGB.jpg','jpeg')
转换操作
# coding:utf-8
import Image
image = Image.open('hu.jpg')
# 格外应该注意这里 接受一个元组参数
image.resize((200, 200))
# 链式的调用可以显示改变的效果,换行了貌似就不行了。:-)
image.rotate(45) # 旋转45°
image.transpose(Image.FLIP_LEFT_RIGHT).show() # 左右对换
image.transpose(Image.FLIP_TOP_BOTTOM).show() # 上下对换
image.transpose(Image.ROTATE_90).show() # 旋转90°
超多特效(滤镜效果)
# coding:utf-8
import Image, ImageFilter
"""
色彩空间的变换,convert函数可以用来将图像转换为不同的色彩模式
"""
image = Image.open('hu.jpg')
# image.filter(ImageFilter.DETAIL).show() # 真实效果展现
# image.filter(ImageFilter.BLUR).show() # 以模糊化的效果展现
# image.filter(ImageFilter.CONTOUR).show() # 以铅笔画的效果展现
# image.filter(ImageFilter.FIND_EDGES).show() # 以铅笔画黑色背景展示
# image.filter(ImageFilter.EDGE_ENHANCE).show() # 线条高亮的显示效果
# image.filter(ImageFilter.EDGE_ENHANCE_MORE).show() # 强化线条高亮
# image.filter(ImageFilter.EMBOSS).show() # 浮雕效果
# image.filter(ImageFilter.GaussianBlur).show() # 也是模糊化的显示效果
# image.filter(ImageFilter.SMOOTH_MORE).show()
# image.filter(ImageFilter.GaussianBlur).save('Filter/GaussianBlur.jpg','jpeg')
image.transpose(Image.FLIP_LEFT_RIGHT).save('left_to_right.jpg','jpeg')
总结
上面罗列出的仅仅是PIL库中的Image模块的部分的函数,里面还有很多东西值得去挖掘。但如果仅仅是简单的一些操作,上面的也差不多够了。
Python图片处理库之PIL的更多相关文章
- media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面
一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...
- Mac下python初学之Image库(PIL)
Mac下python 使用Image库 安装PIL,下载http://www.pythonware.com/products/pil/ 解压PIL源码包,阅读README知道需要使用python se ...
- Python之Numpy库常用函数大全(含注释)
前言:最近学习Python,才发现原来python里的各种库才是大头! 于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习,还是用到时候再查,没必要死记硬背 ...
- Python之Numpy库常用函数大全(含注释)(转)
为收藏学习,特转载:https://blog.csdn.net/u011995719/article/details/71080987 前言:最近学习Python,才发现原来python里的各种库才是 ...
- Python 细聊可以媲美 PS 的 PIL 图片处理库
1 . 前言 PIL 是 Python Image Library 的简称. PIL 库中提供了诸多用来处理图片的模块,可以对图片做类似于 PS(Photoshop) 的编辑.比如:改变图像大小.旋转 ...
- 使用python内置库pytesseract实现图片验证码的识别
环境准备: 1.安装Tesseract模块 git文档地址:https://digi.bib.uni-mannheim.de/tesseract/ 下载后就是一个exe安装包,直接右击安装即可,安装完 ...
- python中用Pillow库进行图片处理
一.Python中 PIL 图像处理库简介 PIL可以做很多和图像处理相关的事情: 图像归档(Image Archives).PIL非常适合于图像归档以及图像的批处理任务.你可以使用PIL创建缩略图, ...
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
Python图像处理库:PIL中Image,ImageDraw等基本模块介绍 标签: 图像处理PILPYTHON 2016-08-19 10:58 461人阅读 评论(0) 收藏 举报 分类: 其他 ...
- Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed
最近在用Python开发自己的博客,需要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,因为我用的是windows. 所以在安装好pil之后就开始写,就按照题目所说出现了Th ...
随机推荐
- Codeforces Round #430 C. Ilya And The Tree
Ilya is very fond of graphs, especially trees. During his last trip to the forest Ilya found a very ...
- ●UVA 11796 Dog Distance
题链: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- ubuntu14.0464位 Ros环境 安装halcon13.01
至于ROS的系统,之前就是安装好的,如果有疑问的可以参考官网的安装教程,按照指令一步一步的操作,http://wiki.ros.org/cn/indigo/Installation/Ubuntu (1 ...
- SQL优化实用方法
SQL优化:避免索引失效 1.不使用NULL 任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的.因为只有该字段中有null值,即使创建了索引其实也是没有用 ...
- A TensorBoard plugin for visualizing arbitrary tensors in a video as your network trains.Beholder是一个TensorBoard插件,用于在模型训练时查看视频帧。
Beholder is a TensorBoard plugin for viewing frames of a video while your model trains. It comes wit ...
- mybatis下使用log4j打印sql语句和执行结果
转载自:https://www.cnblogs.com/jeevan/p/3493972.html 本来以为很简单的问题, 结果自己搞了半天还是不行; 然后google, baidu, 搜出来各种方法 ...
- React学习笔记(一)- 环境搭建
最近在学习react相关的知识,刚刚起步,一路遇坑不断.自己做个笔记,方便日后总结,也供相同趣味的小伙伴一起交流探讨. 学习时主要参考官网的教程:https://facebook.github.io/ ...
- Jenkins 2.x版本修改启动端口号
直接修改jenkins.xml中arguments的httpPort 然后,重启jenkins.
- oss web直传
签名信息 auth.php <?php function gmt_iso8601($time) { $dtStr = date("c", $time); $mydatetim ...
- redis在java客户端的操作
redis高性能,速度快,效率高的特点,用来做缓存服务器是很不错的选择.(和memcache相似)redis在客户端的操作步骤: 1.redis单机版操作 1.1通过Jedis对象操作 (1)将安装r ...