python图片处理库Pillow实现简单PS功能

作者:Python 技术 时间:2021-08-29 13:51:23 

目录
  • 安装

  • 基本操作

    • 打开图像

    • 转换格式

    • 展示图片

    • 剪裁

    • 合并

    • 缩略图

    • 旋转

    • 滤镜

    • 二次创作

  • 画线

    • 文字

      • 总结

        python图片处理库Pillow实现简单PS功能

        文 | 豆豆

        来源:Python 技术「ID: pythonall」

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

        安装

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


        pip install Pillow

        基本操作

        打开图像

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


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

        # 图片大小为 JPEG, 格式为 (3458, 3456), 模式为 RGB

        转换格式

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


        img.save("cat.png ")

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

        python图片处理库Pillow实现简单PS功能

        展示图片

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


        img.show()

        剪裁

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


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

        python图片处理库Pillow实现简单PS功能

        合并

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


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

        python图片处理库Pillow实现简单PS功能

        缩略图

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


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

        python图片处理库Pillow实现简单PS功能

        旋转

        使用 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()

        python图片处理库Pillow实现简单PS功能

        滤镜

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

        • 高斯模糊处理


        img_gaussianblur = img.filter(ImageFilter.GaussianBlur(30))
        img_gaussianblur.show()

        python图片处理库Pillow实现简单PS功能

        • 获取照片轮廓


        img_contour = img.filter(ImageFilter.CONTOUR)
        img_contour.show()

        python图片处理库Pillow实现简单PS功能

        • 亮度增强

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


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

        python图片处理库Pillow实现简单PS功能

        二次创作

        当然,如果想对图片进行二次创作,比如添加一些辅助线,文字之类的可以用 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()

        python图片处理库Pillow实现简单PS功能

        文字


        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()

        python图片处理库Pillow实现简单PS功能

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

        python图片处理库Pillow实现简单PS功能

        总结

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

        来源:https://blog.csdn.net/weixin_48923393/article/details/121045813

        标签:python,Pillow,图片处理
        0
        投稿

        猜你喜欢

      • 浅谈Python模块导入规范

        2021-02-03 03:39:37
      • Python OpenCV处理图像之图像直方图和反向投影

        2023-09-26 20:18:13
      • MySQL使用profile查询性能的操作教程

        2024-01-19 10:22:22
      • 解决Python pandas plot输出图形中显示中文乱码问题

        2023-03-14 21:39:59
      • 在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程

        2023-04-22 23:03:44
      • 简单仿LightBox效果

        2008-09-19 21:35:00
      • Python正则表达式和元字符详解

        2021-02-26 02:54:19
      • Python全局锁中如何合理运用多线程(多进程)

        2022-05-27 18:58:22
      • 详解利用Pytorch实现ResNet网络之评估训练模型

        2023-06-13 16:23:24
      • OpenCV学习之图像加噪与滤波的实现详解

        2022-09-20 04:40:57
      • Python简单实现词云图代码及步骤解析

        2021-05-13 00:25:52
      • python中获得当前目录和上级目录的实现方法

        2022-01-07 20:24:30
      • windows中python实现自动化部署

        2023-06-24 16:04:14
      • 基于canvas的二维码邀请函生成插件

        2024-04-17 10:40:53
      • Oracle 10g 服务器端安装预备步骤(详细图文教程)

        2024-01-13 07:39:57
      • MySQL中把varchar类型转为date类型方法详解

        2024-01-27 03:15:01
      • python字符串连接方式汇总

        2021-08-19 23:46:14
      • Python Numpy之linspace用法说明

        2021-10-17 10:49:55
      • python基本语法练习实例

        2021-02-25 06:50:07
      • 详细讲解MySQL数据库对文件操作的封装

        2008-12-17 16:08:00
      • asp之家 网络编程 m.aspxhome.com