不用微信QQ,用Pillow裁剪图片

Pillow 库是python中处理图片最常用的库,我们用 Pillow 来实现一个图片裁剪的功能。

先安装pillow库

pip install pillow

我们要实现的效果如下,随便找一张图,裁剪后的效果图

不用微信QQ,用Pillow裁剪图片_第1张图片

首先通过open方法打开图片,得到一个Image对象

from PIL import Image
import requests
im = Image.open("test.jpg")

也可以使用使用网络上的图片URL链接

from PIL import Image
import requests
img_url = "https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bc17b6c57e7c42aa905958a648e8c004~tplv-k3u1fbpfcp-watermark.image"
im = Image.open(requests.get(img_url, stream=True).raw)

Image对象提供了crop方法来裁剪图片,只需要指定裁剪的位置 (left, upper, right, lower),其实就是裁剪后图片的左上角坐标(x1,y1)和右下角的坐标值(x2,y2),四个值组成的元组

crpim = im.crop((left, upper, right, lower))

不用微信QQ,用Pillow裁剪图片_第2张图片

怎么获取这四个值呢? 可以用图片编辑工具打开该图片,鼠标移上去就可以获取任意点的像素大小了。例如下图中的黑点的位置就是(104,21)

不用微信QQ,用Pillow裁剪图片_第3张图片

用同样的方法获取右下角的位置,最后另存为一张新的图片new.jpg。

完整代码如下:

from PIL import Image
import requests
# 如果是读取网络上的图片,用这种方式,
# img_url = "https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bc17b6c57e7c42aa905958a648e8c004~tplv-k3u1fbpfcp-watermark.image"
# im = Image.open(requests.get(img_url, stream=True).raw)
im = Image.open("test.jpg")
box = (104, 21, 374, 299)
crpim = im.crop(box)
crpim.save("new.jpg")

另存为 new.jpg 就得到了最终的效果图

不用微信QQ,用Pillow裁剪图片_第4张图片

这个妹纸你们喜欢吗

你可能感兴趣的:(Python技术,python)