这个模块对于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的更多相关文章

  1. media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面

    一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...

  2. Mac下python初学之Image库(PIL)

    Mac下python 使用Image库 安装PIL,下载http://www.pythonware.com/products/pil/ 解压PIL源码包,阅读README知道需要使用python se ...

  3. Python之Numpy库常用函数大全(含注释)

    前言:最近学习Python,才发现原来python里的各种库才是大头! 于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习,还是用到时候再查,没必要死记硬背 ...

  4. Python之Numpy库常用函数大全(含注释)(转)

    为收藏学习,特转载:https://blog.csdn.net/u011995719/article/details/71080987 前言:最近学习Python,才发现原来python里的各种库才是 ...

  5. Python 细聊可以媲美 PS 的 PIL 图片处理库

    1 . 前言 PIL 是 Python Image Library 的简称. PIL 库中提供了诸多用来处理图片的模块,可以对图片做类似于 PS(Photoshop) 的编辑.比如:改变图像大小.旋转 ...

  6. 使用python内置库pytesseract实现图片验证码的识别

    环境准备: 1.安装Tesseract模块 git文档地址:https://digi.bib.uni-mannheim.de/tesseract/ 下载后就是一个exe安装包,直接右击安装即可,安装完 ...

  7. python中用Pillow库进行图片处理

    一.Python中 PIL 图像处理库简介 PIL可以做很多和图像处理相关的事情: 图像归档(Image Archives).PIL非常适合于图像归档以及图像的批处理任务.你可以使用PIL创建缩略图, ...

  8. Python图像处理库:PIL中Image,ImageDraw等基本模块介绍

    Python图像处理库:PIL中Image,ImageDraw等基本模块介绍 标签: 图像处理PILPYTHON 2016-08-19 10:58 461人阅读 评论(0) 收藏 举报  分类: 其他 ...

  9. Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed

    最近在用Python开发自己的博客,需要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,因为我用的是windows. 所以在安装好pil之后就开始写,就按照题目所说出现了Th ...

随机推荐

  1. 内存管理——linux内核学习

    买了<深入Linux内核架构>这本书准备了解一下linux内核机制.但是最开始看了十几页感觉看着很累,本来都准备弃了 过了段时间看见一个面经有linux内核的内容,于是就照着那个先把内存管 ...

  2. ●SPOJ 1811 Longest Common Substring

    题链: http://poj.org/problem?id=2774 题解: 求两个字符串(S,T)的最长公共子串.对 S串建后缀自动机.接下来就用这个自动机去求出能和 S串匹配的 T的每一个前缀的最 ...

  3. 2015 多校联赛 ——HDU5348(搜索)

    Problem Description As we all kown, MZL hates the endless loop deeply, and he commands you to solve ...

  4. python dataframe数据条件筛选

    一般情况下我们从一堆数据中选择我们获取想要的数据会通过一下方式: (1)创建链表或数组: (2)用for 循环遍历所有数据,将想要的存入链表或数组. 但是python中我们不需要这么做,我们可以用Pa ...

  5. EffectiveTensorflow:Tensorflow 教程和最佳实践

    Tensorflow和其他数字计算库(如numpy)之间最明显的区别在于Tensorflow中的操作是符号. 这是一个强大的概念,允许Tensorflow进行所有类型的事情(例如自动区分),这些命令式 ...

  6. 使用Aes对称加密解密Web.Config数据库连接串

    现在很多公司开始为了保证数据库的安全性,通常会对Web.Config的数据库连接字符串进行加密.本文将介绍学习使用Aes加密解密数据库连接字符串.本文采用MySql数据库. AES概念简述 AES 是 ...

  7. Postgresql查询最近12个月、最近30天数据

    -- 最近 12 个月 SELECT * FROM 表名 WHERE 日期字段 BETWEEN (now() - INTERVAL '12 months') AND now() -- 最近 30 天 ...

  8. 使用webpack-dev-server设置反向代理解决前端跨域问题

    webpack-dev-server是一个小型的Node.js Express服务器,它使用webpack-dev-middleware来服务于webpack的包,除此自外,它还有一个通过Sock.j ...

  9. day0203 XML 学习笔记

    day02, 03 1. xml语言和作用 2. xml语法详解 2.1 xml 语法声明 2.1.1 encoding 属性 2.1.2 standalone 属性 2.2 xml 元素(Eleme ...

  10. 【转】动态规划DP

    [数据结构与算法] DP 动态规划 介绍 原创 2017年02月13日 00:42:51 最近在看算法导论. DP全称是dynamic programming,这里programming不是编程,是一 ...