前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python等比例压缩与质量处理图片

Python等比例压缩与质量处理图片

作者头像
用户9925864
发布2022-07-27 08:35:01
1.6K0
发布2022-07-27 08:35:01
举报
文章被收录于专栏:算法工程师的学习日志

项目上需要保存高清图片,不希望图片压缩太多,故分享一下Python下面的图片高质量保存,内容基于常用的PIL和opencv

一.Python PIL

1、在使用PIL image处理图像要获取高质量的关键地方是下面两点:

代码语言:javascript
复制
1、处理时要用 ANTIALIAS;
2、保存时是要设置 quality;

2、核心代码:

代码语言:javascript
复制
im.resize(box, Image.ANTIALIAS)
im.save(path, 'JPEG', quality = 95)

3、示例:

代码语言:javascript
复制
from PIL import Image
file = '1.jpg'
img = Image.open(file)
w,h = img.size
w,h = round(w * 0.2),round(h * 0.2)    // 去掉浮点,防报错

img = img.resize((w,h), Image.ANTIALIAS)
img.save('1.jpg', optimize=True, quality=85)  // 质量为85效果最好

二.Python OpenCV

1、使用opencv保存图像

代码语言:javascript
复制
cv2.imwrite(存储路径,图像变量, [存盘标识])

2、存盘标识说明:

代码语言:javascript
复制
 1、cv2.CV_IMWRITE_JPEG_QUALITY  设置图片格式为.jpeg或者.jpg的图片质量,其值为0---100(数值越大质量越高),默认95 
  2、cv2.CV_IMWRITE_WEBP_QUALITY  设置图片的格式为.webp格式的图片质量,值为0--100 
  3、cv2.CV_IMWRITE_PNG_COMPRESSION  设置.png格式的压缩比,其值为0--9(数值越大,压缩比越大),默认为3

3、存盘标识示例:

代码语言:javascript
复制
cv2.imwrite('img.jpg',img,[int(cv2.IMWRITE_JPEG_QUALTY),70])  把img变量保存到img.png,图片品质为70

4、不同类型图片说明:

保存png图像,图像后缀必须为.png,图像质量0-9,默认为3,0质量最好,9最差。

代码语言:javascript
复制
cv2.imwrite("123.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])

保存jpg图像,图像后缀必须为.jpg,图像质量0-100,默认为95,100最好,0最差。

代码语言:javascript
复制
cv2.imwrite("123.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])

5、示例:

代码语言:javascript
复制
import cv2
cv2.namedWindow("Image") #创建窗口
img = cv2.imread('ver.jpg')
cv2.imshow("Image",img)
cv2.imwrite('test.jpg',img,[int(cv2.IMWRITE_JPEG_QUALITY),70])
cv2.waitKey(0)
cv2.destroyWindow("Image")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目上需要保存高清图片,不希望图片压缩太多,故分享一下Python下面的图片高质量保存,内容基于常用的PIL和opencv
  • 一.Python PIL
    • 1、在使用PIL image处理图像要获取高质量的关键地方是下面两点:
      • 2、核心代码:
        • 3、示例:
        • 二.Python OpenCV
          • 1、使用opencv保存图像
            • 2、存盘标识说明:
              • 3、存盘标识示例:
                • 5、示例:
                相关产品与服务
                图片处理
                图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档