1.安装

pip install Pillow

2.使用

1)图片缩放

from PIL import Image
im = Image.open('dog.jpg')
w,h = im.size #获取图像的尺寸
im.thumbnail((w/2,h/2)) #将图像缩放50%
#im.show() #显示图片
im.save('dog_thumbnail.jpg') #保存图片

效果图:

2.图片模糊

im = Image.open('dog.jpg')
im2 = im.filter(ImageFilter.BLUR)
im2.save('dog_blur.jpg')

效果图:

3.生成验证码

from PIL import ImageDraw,ImageFont,ImageFilter
import random #返回一个A-Z的随机字母
def randomChar():
return chr(random.randint(65,90)) #随机颜色
def randomColor1():
return (random.randint(64,255),random.randint(64,255),random.randint(64,255)) #随机颜色2
def randomColor2():
return (random.randint(32,127),random.randint(32,127),random.randint(32,127)) width = 60 * 4
height = 60
#创建白色图片
image = Image.new('RGB',(width,height),(255,255,255))
#创建font对象
#OSError: cannot open resource 需要指定字体库的系统路径
#font = ImageFont.truetype("Arial.ttf",36)
font = ImageFont.truetype("C:/windows/fonts/Arial.ttf",36)
#创建Draw对象,用于向白色背景图片上绘图
draw = ImageDraw.Draw(image)
#填充每一个像素
for x in range(width):
for y in range(height):
draw.point((x,y),fill=randomColor1()) #输出文字
for i in range(4):
draw.text((60*i+10,10),randomChar(),font=font,fill=randomColor2()) #模糊
image = image.filter(ImageFilter.BLUR)
image.save("captcha.jpg")

效果:

4.裁图,旋转,粘贴

from PIL import Image
im = Image.open('dog.jpg')
box = (100,50,350,250) #要裁剪的矩形区域,坐标以左上角为原点
region = im.crop(box) #返回裁剪到的图片
#region.show()
region = region.transpose(Image.ROTATE_180) #对图像进行旋转
im.paste(region,box) #将旋转后的图像粘回原图
im.show()

效果图:

5.添加图片水印:

from PIL import Image

image = Image.open('dog.jpg')
logo = Image.open('logo.png')
logoW,logoH= logo.size
imageW,imageH = image.size
image.paste(logo,(imageW - logoW, imageH - logoH))
image.show()

效果:

6.添加透明文字水印:

参考: http://pythoncentral.io/watermark-images-python-2x/

def add_watermark(in_file, text,font,out_file='watermark.jpg', angle=23, opacity=0.25):
'''
:param in_file: 要添加水印的图片
:param text: 文字水印内容
:param out_file: 添加水印后的图片
:param font:水印字体
:param angle: 水印旋转角度
:param opacity: 水印透明度
'''
img = Image.open(in_file).convert('RGB')
watermark = Image.new('RGBA', img.size, (0, 0, 0, 0))
size = 2
n_font = ImageFont.truetype(font, size)
#getsize返回水印文字对应字体大小的宽度和高度
n_width, n_height = n_font.getsize(text)
#找到使得水印文字宽度最接近图片宽度的字体大小
while n_width + n_height < watermark.size[0]:
size += 2
n_font = ImageFont.truetype(font, size)
n_width, n_height = n_font.getsize(text)
draw = ImageDraw.Draw(watermark, 'RGBA')
draw.text(((watermark.size[0] - n_width) / 2,
(watermark.size[1] - n_height) / 2),
text, font=n_font)
watermark = watermark.rotate(angle, Image.BICUBIC)
alpha = watermark.split()[3]
#通过降低亮度和对比度来降低水印的透明度
alpha = ImageEnhance.Brightness(alpha).enhance(opacity)
#设置透明度
watermark.putalpha(alpha)
#添加水印
Image.composite(watermark, img, watermark).save(out_file, 'JPEG') FONT = 'C:/Windows/fonts/Arial.ttf'
add_watermark('dog.jpg','python',font=FONT)

效果图:

相关资料:

https://pillow.readthedocs.io/en/latest/handbook/tutorial.html

http://pillow-cn.readthedocs.io/zh_CN/latest/handbook/tutorial.html

图像处理PILLOW的使用的更多相关文章

  1. 杂项之图像处理pillow

    杂项之图像处理pillow 本节内容 参考文献 生成验证码源码 一些小例子 1. 参考文献 http://pillow-cn.readthedocs.io/zh_CN/latest/ pillow中文 ...

  2. 第二篇:杂项之图像处理pillow

    杂项之图像处理pillow   杂项之图像处理pillow 本节内容 参考文献 生成验证码源码 一些小例子 1. 参考文献 http://pillow-cn.readthedocs.io/zh_CN/ ...

  3. 图像处理pillow模块

    pillow模块: -->基本的图像处理模块 Pip install pillow from PIL import Image #1.读取图片 im = Image.open('/test.jp ...

  4. 潭州课堂25班:Ph201805201 爬虫基础 第九课 图像处理- PIL (课堂笔记)

    Python图像处理-Pillow 简介 Python传统的图像处理库PIL(Python Imaging Library ),可以说基本上是Python处理图像的标准库,功能强大,使用简单. 但是由 ...

  5. python爬虫基础15-python图像处理,PIL库

    Python图像处理-Pillow 简介 Python传统的图像处理库PIL(Python Imaging Library ),可以说基本上是Python处理图像的标准库,功能强大,使用简单. 但是由 ...

  6. 6 python高级数据处理和可视化

    6.2. pyplot作图 1.折线图和散点图 t = np.arange(0,4,0.1) plt.plot(t,t,'o',t,t+2,t,t**2,'o') plt.show() 2.柱线图 p ...

  7. python武器库

    1,开发库You-GetYouTube/Youku/Niconico视频下载器Zipline一个Pythonic的交易算法库docopt为Python程序创造一个优雅的命令行界面PDFMinerPyt ...

  8. Python图像处理库:Pillow 初级教程

    Python图像处理库:Pillow 初级教程 2014-09-14 翻译 http://pillow.readthedocs.org/en/latest/handbook/tutorial.html ...

  9. 图像识别的前期工作——使用pillow进行图像处理

    pillow是个很好用的python图像处理库,可以到官方网站下载最新的文件.如果官网的任何PIL版本都不能与自己的python版本对应,或安装成功后发现运行出错,可以尝试从一个非官方的whl网站下载 ...

随机推荐

  1. jmeter定时器

    一.定时器的作用 1.定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面): 2.当执行一个sampler之前时,所有当前作用域内的定时器都会被执 ...

  2. 为何linux(包括mac系统)执行指令要加上 ./ ??

    比如,现在要在$HIVE_HOME/bin下执行hive指令来启动hive,则该指令的执行顺序如下所示: 1 先找PATH路径 1.1 如果PATH路径下配置了$HIVE_HOME/bin,无论PAT ...

  3. django -----分页器组件

    分页器组件 本文目录 1 Django的分页器(paginator)简介 2 应用View层 3 模版层 index.html 4 扩展 回到目录 1 Django的分页器(paginator)简介 ...

  4. EasyUI datagrid 数据加载

    网上找了好多人的方法发现都有问题发一个可用方便的 主要分三种情况 加载1,loaddata 加载2,datagrid 加载3, url 加载 第一部分,datagrid加载 第二部分,点击 datag ...

  5. tomcat localhost

    启动tomcat后,登录本地localhost时,被要求输入用户名和密码,自己也从没有设置过啊,上网查找,原因如下: 机器装的oracle,它自带的httpserver的端口是8080,同时,tomc ...

  6. SQL Server 排序的时候使 null 值排在最后

    https://www.cnblogs.com/Brambling/p/7046148.html 最近遇到一个 SQL Server 排序的问题,以前也没了解过,然后这次碰到了. 才发现 SQL Se ...

  7. Go Example--锁

    package main import ( "fmt" "math/rand" "runtime" "sync" &qu ...

  8. 【HAOI2014】遥感监测

    独立博客被硬盘保护干掉了真不爽啊…… 原题: 外星人指的是地球以外的智慧生命.外星人长的是不是与地球上的人一样并不重要,但起码应该符合我们目前对生命基本形式的认识.比如,我们所知的任何生命都离不开液态 ...

  9. 关于Spring IOC的学习和理解

    面向对象——三层架构(表现层.业务层.持久层) 三层架构:即表现层.业务层.持久层. ① 持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射).也就是哪个类对应哪个表,哪个属性对应哪个列.持 ...

  10. Benchmarking Zeebe: An Intro to How Zeebe Scales Horizontally and How We Measure It

    Written by Felix Müller and Mike Winters on Jun 12 2018 in the Inside Zeebe category. In the past fe ...