Python图像处理PIL库详解 - vip共享吧
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们


  • 个人中心
  •  我的主页
  •  我要投稿
  •  会员服务
  •  修改资料
  •  退出登录
导航菜单
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们
Python

Python图像处理PIL库详解

2023/8/10 韩俊  Python教程 104 0

Pillow 也叫 PIL,全称为 Python Imaging Library,已经是 Python 平台事实上的图像处理标准库了。PIL 功能非常强大,并且 API 非常简单易用。

我们可以使用 pip 来安装 PIL,注意用 pip 安装 PIL时,不能用 pip install PIL,必须用 pip install pillow 命令来安装。

使用 PIL 模块的 Image

用 Image 类的 thumbnail 函数对我们本地磁盘的图形文件进行缩放操作。注意:thumbnail 函数缩放图片比例必须为大于 0 小于等于 1,并且函数对图片缩放的高和宽比例必须一致,如果不一致,以缩放比例最大的参数为准。

from PIL import Image

img = Image.open("d:/test.png")    # 确保 d 盘下存在 test.png 图片文件
w = img.size[0]  # 图片宽度
h = img.size[1]  # 图片高度
img.thumbnail((w * 0.5, h * 0.5))  # 缩放的参数必须大于 0 且 小于等于 1
img.save("d:/testcopy.png")        # 缩放后另存为 testcopy.png

我们可以用 Image 类的 resize 函数进对图片进行非等比例缩放。

from PIL import Image

img = Image.open("d:/test.png")  # 确保 d 盘下存在 test.png 图片文件
w = img.size[0]  # 图片宽度
h = img.size[1]  # 图片高度
img.resize((w * 2, h * 3))       # 缩放的倍数必须为正整数
img.save("d:/testcopy.png")      # 缩放后另存为 testcopy.png

使用 PIL 模块的其它常用函数

PIL 模块功能非常丰富,它不但提供了很多有用的处理图片的类库,还提供了一系列绘图的类库,下面我们使用常用的 PIL 模块的类库做一个项目开发中常见的需求——生成字母验证码图片。我们生成验证码图片后,存储在项目目录下(文件名为:code.jpg)

from PIL import Image, ImageDraw, ImageFont, ImageFilter
import random

# 生成随机大写字母,ascii为 [65, 90],
def rndChar():
    return chr(random.randint(65, 90))

# 生成填充颜色,返回 RGB 值,每个颜色值在(128, 255)之间
def rndColor():
    return (random.randint(128, 255), random.randint(128, 255), random.randint(128, 255))

# 生成字体颜色,返回 RGB 值,每个颜色值在(0, 127)之间,在此我只是为了不和背景颜色重叠,大家可以自行设置。
def rndColor2():
    return (random.randint(0, 127), random.randint(0, 127), random.randint(0, 127))

# 图片大小(存放 5 个随机字母),宽度为:400,高度为:80
width = 80 * 5
height = 80

# 黑色背景,RGB值为:(0, 0, 0)
image = Image.new('RGB', (width, height), (0, 0, 0))

# 创建 Font 对象,设定字体大小为 36
font = ImageFont.truetype('C:/Windows/Fonts/verdana.ttf', 36)

# 创建Draw对象
draw = ImageDraw.Draw(image)

# 填充每个像素
for x in range(width):
    for y in range(height):
        draw.point((x, y), fill=rndColor())

# 输出文字
for t in range(5):
    draw.text((80 * t + 10, 10), rndChar(), font=font, fill=rndColor2())

# 让验证码图片模糊
image = image.filter(ImageFilter.BLUR)
image.save('code.jpg', 'jpeg')

Python 有大量的功能丰富的第三方模块,我们在使用第三方模块时,可以对某些函数的功能进行猜测,如果猜测的结果不对时,要学会查找第三模块的官方文档来进行学习。

本节重要知识点

会使用 PIL 做图片处理。

会自己查找学习 PIL 其它相关类库。

点赞:0 分享 海报 收藏

上一篇
电影《孤注一掷》:反诈骗犯罪片,人性的探索与金钱的诱惑
下一篇
Python中hashlib模块详解
作者头像 作者名称 作者性别
韩俊
联系作者 作者主页

热门推荐

1 Python3的list类型
2 Python3装饰器
3 Python3生成器
4 python3闭包函数
5 Python3匿名函数
6 Python3推导式

评论列表

取消回复

    •  
      Login

      韩俊

      趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

      站长 主页
      用户中心
      评论管理
      退出登陆
      • 1236文章
      • 449评论
      • 79微语
  • 广告赞助

  • 二零二三年09月
    一二三四五六日
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
  • 分类

    • 网站模板源码
    • IT技术笔记
    • 好资源分享
    • 共享网络资源
  • 最新文章

      • 小程序隐私保护指引完整填写范本
        • 微信小程序备案时遇到的一些问题
          • 迷雾通:免费科学上网的VPN软件
            • WordPress大前端主题DUX6.4版本免授权无限制版
              • 网站广告计价方式有哪些类型
                • 分析网站收录量减少的原因
                  • Nginx配置图片缓存加速,提高用户体验
                    • nginx负载均衡与正反向代理
  • 热门文章

    • 酷狗音乐VIP账号 酷狗音乐会员账号共享2017.01.29更新
    • 芒果tv vip会员账号 芒果tv会员账号共享2017.01.29更新
    • 爱奇艺vip账号 爱奇艺/PPS会员账号共享2016.12.12更新
    • 优酷/土豆vip会员账号 优酷会员账号共享2017.01.29更新
    • 活动:免费获得爱奇艺VIP/PPS会员账号50天以上的使用权!
    • 酷我音乐VIP账号 酷我音乐会员账号共享2016.12.31更新
    • 暴风影音会员账号 暴风影音会员账号共享2016.12.31更新
    • m1905会员账号 m1905会员账号共享2016.10.21更新
  • 最新评论

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=1766679359

      2345和360修改太厉害,现在都不想给...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3293901900

      感谢大大的分享

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了好奥v:如果没有解析成功,可以切换接口...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=131241242441

      现在视频解析网站怎么用不了啦?

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了全力以赴:已发送

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=471420954

      感谢大佬!麻烦您啦! 模板地址:htt...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=qleez

      感谢大佬!麻烦您啦! 模板地址:htt...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=1184503826

      回复了韩俊:万分感谢!!!

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了Moen:已发送

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了慕子訓Chester:已发送

  • 网站统计 I 当前在线:779人

    • 本站管理:1位
    • 用户总数:601位
    • 置顶文章:0篇
    • 日志总数:1236篇
    • 微语总数:79条
    • 评论总数:449条
    • 标签总数:82条
    • 页面总数:9页
    • 分类总数:14个
    • 链接总数:41条
    • 运行天数:3066天
    • 最后更新:9月19日
    • 登录
    • 注册
    • 找回
    Copyright © 2023vip共享吧网站地图 网站备案豫ICP备19004194号-1

    免责声明:本站资源仅供用于学习和交流,本站部分素材内容来源于网络,如有侵权/投稿等,请及时联系站长.

    • 首页
    • 秒懂百科 秒懂百科
    • 搜索
    • 史上今日
    • 用户

    大家都在搜

    • 飞卢小说会员账号
    • 掌阅vip账号共享
    • 飞卢小说vip账号共享
    • 酷狗VIP账号
    • 土豆vip账号
    • 华数tv会员账号分享
    • 网盘赚钱
    • 爱奇艺VIP账号共享
    • 乐视视频
    • 网赚网盘
    • 咪咕会员账号共享
    • sem优化
    • 咪咕会员账号
    • m1905会员账号共享
    • 喜马拉雅vip会员共享
    • m1905会员账号
    • 
    • 