我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python Pillow Image.save保存为jpg图片压缩的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python Pillow Image.save保存为jpg图片压缩的方法

本篇内容主要讲解“Python Pillow Image.save保存为jpg图片压缩的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python Pillow Image.save保存为jpg图片压缩的方法”吧!

    Pillow图片格式转换

    Pillow 库支持多种图片格式,您可以直接使用 open() 方法来读取图片,并且无须考虑图片是何种类型。Pillow 能够很轻松地实现图片格式之间的转换。

    图片格式之间的转换主要有以下两种方法,下面分别对它们进行了介绍:

    save()

    顾名思义,save() 方法用于保存图像,当不指定文件格式时,它会以默认的图片格式来存储;如果指定图片格式,则会以指定的格式存储图片。save() 的语法格式如下:

    Image.save(fp, format=None)

    参数说明如下:

    • fp:图片的存储路径,包含图片的名称,字符串格式;

    • format:可选参数,可以指定图片的格式。

    示例如下:

    from PIL import Imageim = Image.open("C:/Users/Administrator/Desktop/c-net.png")im.save('C:/Users/Administrator/Desktop/c.biancheng.net.bmp')

    此时您的计算机桌面上会存在一个 c.bianchneg.net.BMP格式的图片。

    convert()+save()

    注意,并非所有的图片格式都可以用 save() 方法转换完成,比如将 PNG 格式的图片保存为 JPG 格式,如果直接使用 save() 方法就会出现以下错误:

    from PIL import Imageim = Image.open("C:/Users/Administrator/Desktop/c-net.png")im.save('C:/Users/Administrator/Desktop/c.biancheng.net.jpg')

    错误信息如下所示:

    #系统错误,RGBA不能作为JPEG图片的模式

    OSError: cannot write mode RGBA as JPEG

    引发错误的原因是由于 PNG 和 JPG 图像模式不一致导致的。其中 PNG 是四通道 RGBA 模式,即红色、绿色、蓝色、Alpha 透明色;JPG 是三通道 RGB 模式。因此要想实现图片格式的转换,就要将 PNG 转变为三通道 RGB 模式。

    Image 类提供的 convert() 方法可以实现图像模式的转换。该函数提供了多个参数,比如 mode、matrix、dither 等,其中最关键的参数是 mode,其余参数无须关心。语法格式如下:

    convert(mode,parms**)
    • mode:指的是要转换成的图像模式;

    • params:其他可选参数。

    修改后的代码如下所示:

    from PIL import Imageim = Image.open("C:/Users/Administrator/Desktop/c-net.png")#此时返回一个新的image对象,转换图片模式image=im.convert('RGB')#调用save()保存image.save('C:/Users/Administrator/Desktop/c.biancheng.net.jpg')

    通过以上代码,成功将 PNG 格式的图片转换为了 JPG 格式。 

    Pillow Image.save 保存为jpg图片压缩

    在使用Pillow中的Image.save()方法,使用默认参数保存jpg图片的过程中发现图片被压缩的很严重,导致原来很大的大小变成几十K。这是因为在保存为jpg的过程中,内部使用压缩算法对图片进行的压缩处理。

    但是有些时候往往需要图片的大小不能变化太大或不能太小。所以在使用此方式时可以加入参数:

    imObj.save(img_name, quality=95)

    quality参数: 保存图像的质量,值的范围从1(最差)到95(最佳)。 默认值为75,使用中应尽量避免高于95的值; 100会禁用部分JPEG压缩算法,并导致大文件图像质量几乎没有任何增益。

    使用此参数后,图片大小会增加。如果图片的大小还不能满足你的需求,是否还有其他方式去增加图片大小呢?

    通过查阅资料并尝试,发现save方法还有一个可以配合quality使用的参数,能够大大增加图片大小:

    imObj.save(new_name, quality=95, subsampling=0)

    subsampling参数:子采样,通过实现色度信息的分辨率低于亮度信息来对图像进行编码的实践。 

    可能的子采样值是0,1和2,对应于4:4:4,4:2:2和4:1:1(或4:2:0?)。

    经过实践将值设为0便可以满足图片大小增大的需求。

    注意: 以上方法的参数只针对于保存为JPG/JPEG格式的图片的情况。

    到此,相信大家对“Python Pillow Image.save保存为jpg图片压缩的方法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Python Pillow Image.save保存为jpg图片压缩的方法

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Python Pillow Image.save保存为jpg图片压缩的方法

    本篇内容主要讲解“Python Pillow Image.save保存为jpg图片压缩的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python Pillow Image.save保存为j
    2023-06-25

    Android 图片压缩并保存的方法

    参考:1.https://blog.csdn.net/pbm863521/article/details/743917872.https://www.jianshu.com/p/871f0c1f0006 1.背景:最近一个项目的开发,需要用
    2022-06-06

    python selenium保存图片最好的两种方法分别是什么

    今天给大家介绍一下python selenium保存图片最好的两种方法分别是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。selenium爬取页面时经常遇
    2023-06-29

    Android编程实现手绘及保存为图片的方法(附demo源码下载)

    本文实例讲述了Android编程实现手绘及保存为图片的方法。分享给大家供大家参考,具体如下: 运行效果图预览:应 yzuo_08 要求做了此Demo,跟以前那个手写板Demo不同的是可以将画布的内容保存为图片。 附上关键代码: MainVi
    2022-06-06

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录