一行代码搞定的事还用个锤子的 PS 啊

简介: 在我们的日常生活和工作中有不少场景需要简单处下理图片,很多人都是依赖 PS、美图秀秀等各种图像处理工具,殊不知在你打开软件的一瞬间 Python 就已经将图片处理完了。听起来是不是很神奇,正所谓是 Python 在手,啥也不愁。

在我们的日常生活和工作中有不少场景需要简单处下理图片,很多人都是依赖 PS、美图秀秀等各种图像处理工具,殊不知在你打开软件的一瞬间 Python 就已经将图片处理完了。听起来是不是很神奇,正所谓是 Python 在手,啥也不愁。

Python 届处理图片最强的库是 PIL(Python Image Library),但由于该库只支持 2.x 版本,于是有一批乐于助人的程序员在此基础上做了扩展,出了一个兼容 3.x 的版本也就是 Pillow,因此,我们今天要用的库就是 Pillow。


安装

老规矩,先通过 pip 安装到本地机器。

pip install Pillow


基本操作


打开图像


可以通过 Image 类来操控图片,比如打开一张图片并获取其基本信息。

from PIL import Image, ImageFilter, ImageEnhance, ImageDraw, ImageFont
img = Image.open('cat.jpg')
print(F'图片大小为 {img.format}, 格式为 {img.size}, 模式为{img.mode}')
# 图片大小为 JPEG, 格式为 (3458, 3456), 模式为 RGB


转换格式

如果给目标图片转换格式,可以通过 save 函数来实现。

img.save("cat.jpg ")

之后你就会在同目录下得到一张扩展名为 png 的图片了。

16.png


展示图片

直接通过 show 函数来显示图片。

img.show()


剪裁

使用 crop 函数传入一个四元祖坐标来剪裁图片。

point = (1500, 800, 3000, 2300)
img_crop = img.crop(point)
img_crop.show()

17.png


合并

通过 paste 函数传入合并的图像和坐标来实现两张图片的合并,那如果要合并多张图片呢,当然是直接调用多次就好了呀。

img.paste(img_crop, (0, 0), None)
img.show(

18.png


缩略图

有时候图像过大,这时候就显示出缩略图的必要了,可以通过 thumbnail 函数传入 size 来实现图片的缩小。

thumb_size = (345, 345)
img.thumbnail(thumb_size)
img.show()

19.png


旋转

使用 transpose 函数传入旋转角度来实现图片的翻转。

可以传入的参数有以下几种:

  • Image.ROTATE_90:逆时针旋转 90°
  • Image.ROTATE_180:逆时针旋转 180°
  • Image.ROTATE_270:逆时针旋转 270°
  • Image.FLIP_LEFT_RIGHT:左右翻转
  • Image.FLIP_TOP_BOTTOM:上下翻转
img_rotate = img.transpose(Image.ROTATE_90)
img_rotate.show()

20.png


滤镜

当然,我们还可以对图片做一些滤镜处理。

  • 高斯模糊处理
img_gaussianblur = img.filter(ImageFilter.GaussianBlur(30))
img_gaussianblur.show()

21.png

  • 获取照片轮廓
img_contour = img.filter(ImageFilter.CONTOUR)
img_contour.show()

22.png

  • 亮度增强

如果照片亮度不够,还可以对照片进行亮度增强。

color = ImageEnhance.Color(img)
img_color = color.enhance(1.5)
img_color.show()

23.png


二次创作

当然,如果想对图片进行二次创作,比如添加一些辅助线,文字之类的可以用 ImageDraw 类来完成。


画线

draw = ImageDraw.Draw(img)
draw.line((0, 0) + img.size, fill=20, width=3)
draw.line((0, img.size[1], img.size[0], 0), fill=200, width=3)
img.show()

24.png


文字

draw = ImageDraw.Draw(img)
font = ImageFont.truetype('AliPuHui-Bold.ttf', 200)
text = 'This is a cat!'
draw.text((450, 450), text, font=font, fill='pink')
img.show()

15.png

当然,如果有多行文字的话,直接加入换行符 \n 即可。

14.png


总结

今天派森酱带大家一起通过使用 Pillow 库对图片进行一些简单的操作,事实上 Pillow 库远不止此,将这些简单的操作进行组合甚至可以自创表情包,期待小伙伴们自行发掘更多更好玩的用法呀~

目录
相关文章
|
计算机视觉 Python
Biden的帽子忘记带了,你能用Python给它快速PS一个么?
Biden的帽子忘记带了,你能用Python给它快速PS一个么?
116 0
Biden的帽子忘记带了,你能用Python给它快速PS一个么?
|
程序员
程序员PS技能(一):PS2017基本框架使用
程序员PS技能(一):PS2017基本框架使用
程序员PS技能(一):PS2017基本框架使用
|
程序员 计算机视觉 Python
一行代码搞定的事还用个锤子的 PS 啊
在我们的日常生活和工作中有不少场景需要简单处下理图片,很多人都是依赖 PS、美图秀秀等各种图像处理工具,殊不知在你打开软件的一瞬间 Python 就已经将图片处理完了。听起来是不是很神奇,正所谓是 Python 在手,啥也不愁。 Python 届处理图片最强的库是 PIL(Python Image Library),但由于该库只支持 2.x 版本,于是有一批乐于助人的程序员在此基础上做了扩展,出了一个兼容 3.x 的版本也就是 Pillow,因此,我们今天要用的库就是 Pillow。
152 0
一行代码搞定的事还用个锤子的 PS 啊
|
编解码
索尼展示PS 5图赏,《刺客信条:英灵殿》非原生4K
近日,索尼公布了PS 5的一组新图片,展示PS 5设计。这次索尼抛弃了PS 4的三明治结构,为PS 5加入了曲线,而且色彩黑白对冲很明显,中间是功能面板,在功能面板顶部和白色外壳的缝隙处是散热孔。另外能清晰看到PS 5比PS 5 Slim多一个光驱口,也让PS 5突出一块,外观上反倒不如Slim版。
216 0
索尼展示PS 5图赏,《刺客信条:英灵殿》非原生4K
[译] 如何用ps制作泼水字
泼水字教程 原文链接 按着习惯先看一下结果图: 在本教程中,我给大家介绍在Photoshop中如何制作泼水文字效果。知识点:笔刷的运用。 准备工作: 下载以下素材,水花笔刷是需要付费的,其它倒没什么。
1347 0
[译] 如何用ps制作火焰字
火焰字教程 原文链接 按着习惯先看一下结果图: 火焰字历来是ps社区中的经典教程之一,我这是它的另外一个版本,主要是利用真实火焰结合ps滤镜技术。准备好了,就让我们开始吧! ctrl + 双击,新建 600 * 400大小的文件,填充黑色背景,使用文字工具(t)输入数字1, 字体下载,并 ctrl + s 保存当前文字,命为“火焰字”。
1224 0