简单的Pillow
2018-03-06 14:54
99 查看
安装
Pillow和PIL不可以同时存在于系统环境中,大于等于1.0小于2.1.0的Pillow版本不支持import Image,请使用from PIL import Image;大于等于2.1.0的,请使用from PIL Image import core as imageing。
Pillow2.0.0以下的版本支持Python2.4到2.7的版本,2.00<=Pillow<4.0.0的版本支持Python2.6,2.7,3.2-3.5的版本;4.0.0<=Pliiow<5.0.0的版本支持Python2.7,3.3-3.6的版本;Pillow>=5.0.0的版本支持Python2.7,3.4,3.5,3.6的版本。
Pillow安装,直接通过在CMD中通过pip install pillow,其他一些与安装配置有关的相关问题请网上查阅。
函数
利用Image模块中的open()函数进行图像加载:
from PIL import Image
im=Image.open("1.jpg")
分为三种:灰度图像亮度L,真彩图像RGB,印前图像CMYK。
im.show() 显示载入的图像
通过Image中的open和save分别对图像进行读写。
将文件转换成JPEGfrom __future__ import print_function
import os,sys
from PIL import Image
for infile in sys.argv[1:]:
f,e=os.path.splitext(infile)
outfile=f+".jpg"
if infile !=outfile:
try:
Image.open(infile).save(outfile)
except IOError:
print("cannot convert",infile)
创建JPEG缩略图
region=im.crop(box) 对矩形进行处理,并还原region=region.transpose(Image.rotate_180)
im.paste(region,box) 图像滚动
im = Image.merge("RGB", (b, g, r)) 使用函数rotate()和transpose()进行角度选择
使用convert()进行"L"和"RGB"之间的模式转换test=im.convert("L")
增强过滤器
from PIL import ImageFilter
out=im.filter(ImageFilter.DETATL)
点操作
out=im.point(lambda i: i*1.2)
使用point()和paste()来选择性的修改图像,掩膜创造
source=im.split()
R,G,B=0,1,2
mask=source[R].point(lambda i : i<100 and 255)
out=source[G]point(lambda i : i * 0.7)
source[G].paste(out,None,mask)
im=Image.merge(im.mode,source)
掩膜创造的语法
imout=im.point(lambda i : expression and 255)
图像增强
from PIL import ImageEnhance
enh=ImageEnhance.Contrast(im)
enh.enhance(1.3).show("30% more contrast")
使用seek()和tell()对FLI/FLC/GIF视频之间进行帧数移动
from PIL import Image
im=Image.open("animation.gif")
im.seek(1)
try:
while 1:
im.seek(im.tell()+1)
except EOFError:
pass
Pillow和PIL不可以同时存在于系统环境中,大于等于1.0小于2.1.0的Pillow版本不支持import Image,请使用from PIL import Image;大于等于2.1.0的,请使用from PIL Image import core as imageing。
Pillow2.0.0以下的版本支持Python2.4到2.7的版本,2.00<=Pillow<4.0.0的版本支持Python2.6,2.7,3.2-3.5的版本;4.0.0<=Pliiow<5.0.0的版本支持Python2.7,3.3-3.6的版本;Pillow>=5.0.0的版本支持Python2.7,3.4,3.5,3.6的版本。
Pillow安装,直接通过在CMD中通过pip install pillow,其他一些与安装配置有关的相关问题请网上查阅。
函数
利用Image模块中的open()函数进行图像加载:
from PIL import Image
im=Image.open("1.jpg")
from __future__ import print_function print(im.format,im.size,im.mode)通过format表示图像的来源,size表示图像的长、宽,mode定义了图像中的数量、名称、像素类型和深度,常见的
分为三种:灰度图像亮度L,真彩图像RGB,印前图像CMYK。
im.show() 显示载入的图像
通过Image中的open和save分别对图像进行读写。
将文件转换成JPEGfrom __future__ import print_function
import os,sys
from PIL import Image
for infile in sys.argv[1:]:
f,e=os.path.splitext(infile)
outfile=f+".jpg"
if infile !=outfile:
try:
Image.open(infile).save(outfile)
except IOError:
print("cannot convert",infile)
创建JPEG缩略图
from __future__ import print_function import os,sys from PIL import Image size=(128,128) for infile in sys.argv[1:]: outfile=os.path.splitext(infile)[0]+".thumbnail" if infile !=outfile: try: im=Image.open(infile) im.thumbnail(size) im.save(outfile,"JPEG") except IOError: print("cannot create thumbbail for",infile)使用Image中的crop()函数进行矩形区域提取,box中的数字依次表示左上右下,提取出来的矩形是一个300*300的矩形 box=(100,100,400,400)
region=im.crop(box) 对矩形进行处理,并还原region=region.transpose(Image.rotate_180)
im.paste(region,box) 图像滚动
def roll(image,delta): #roll an image sideways xsize,ysize=image.size delta=delta%xsize if delta==0:return image part1=image.crop((0,0,delta,ysize)) part2=image.crop((delta,0,xsize,ysize)) part1.load() part2.load() image.paste(part2,(0,0,xsize-delta,ysize)) image.paste(part1,(xsize-delta,0,xsize,ysize)) return image使用 r, g, b = im.split()
im = Image.merge("RGB", (b, g, r)) 使用函数rotate()和transpose()进行角度选择
使用convert()进行"L"和"RGB"之间的模式转换test=im.convert("L")
增强过滤器
from PIL import ImageFilter
out=im.filter(ImageFilter.DETATL)
点操作
out=im.point(lambda i: i*1.2)
使用point()和paste()来选择性的修改图像,掩膜创造
source=im.split()
R,G,B=0,1,2
mask=source[R].point(lambda i : i<100 and 255)
out=source[G]point(lambda i : i * 0.7)
source[G].paste(out,None,mask)
im=Image.merge(im.mode,source)
掩膜创造的语法
imout=im.point(lambda i : expression and 255)
图像增强
from PIL import ImageEnhance
enh=ImageEnhance.Contrast(im)
enh.enhance(1.3).show("30% more contrast")
使用seek()和tell()对FLI/FLC/GIF视频之间进行帧数移动
from PIL import Image
im=Image.open("animation.gif")
im.seek(1)
try:
while 1:
im.seek(im.tell()+1)
except EOFError:
pass
相关文章推荐
- Python用Pillow(PIL)进行简单的图像操作方法
- Python用Pillow(PIL)进行简单的图像操作
- Python3 Pillow生成简单验证码图片
- python3 pillow生成简单验证码图片的示例
- [Python] 图像简单处理(PIL or Pillow)
- [Python] 图像简单处理(PIL or Pillow)
- python+pillow绘制矩阵盖尔圆简单实例
- 利用Pillow,几行代码实现的最简单的Django页面验证码功能
- Pillow简单使用--数组到图片、图片到数组转换
- libevent实现的一个简单的服务器和客户端程序
- 从最简单的开始---配置jdk环境变量
- unix网络——epoll简单服务器
- c简单实现日志记录
- 从一个简单例子谈谈js的捕获与冒泡问题
- scala map操作 简单总结
- win7 selenium python 验证码识别 pytesser使用 安装Pillow、pytesser、tesseract-ocr
- Java实现简单的RPC框架的示例代码
- 一款简单灵活的Android下拉筛选框
- gRPC服务发现&负载均衡 本身是单机的非分布式,需要简单开发
- python实现简单神经网络算法