【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » 教程 » 正文

确定Python(PIL)中的JPG质量

放大字体  缩小字体 发布日期:2022-01-18 22:08:55    浏览次数:7
导读

  在PIL(以及大多数使用libjpeg的所有软件/库)中,质量设置用于构建量化表(参考)。在libjpeg中,质量编号缩放样本表值(来

  在PIL(以及大多数使用libjpeg的所有软件/库)中,质量设置用于构建量化表(参考)。在libjpeg中,质量编号缩放样本表值(来自JPEG规范K.1节)。在其他类别中,有不同的表分配给不同的质量(例如:Photoshop,数码相机)。

  因此,换句话说,质量等于量化表,因此它比数字更复杂。

  如果要以相同的质量保存修改图像,则只需使用相同的量化表。幸运的是,量化表被嵌入到每个JPEG中。不幸的是,在保存为PIL时无法指定量化表。cjpeg,libjpeg附带的命令行实用程序可以做到这一点。

  这是一些用指定的量化表保存jpeg的粗略代码:

  from subprocess import Popen, PIPEfrom PIL import Image, ImageFilterproc = Popen(%s -sample 1x1 -optimize -progressive -qtables %s -outfil

  您将需要找到从原始jpeg提取量化表的方法。djpeg可以做到这一点(libjpeg的一部分):

  djpeg -verbose -verbose image.jpg > /dev/null

  您还需要查找并设置采样。有关更多信息,请点击此处。你也可以看看test_subsampling

  更新

  我做了一个PIL分支,以添加在保存JPEG时指定子采样表或量化表或同时指定两者的可能性。您还可以指定quality=keep保存的时间,并且将使用与原始图像相同的量化表和二次采样来保存图像(原始图像必须为JPEG)。保存时还有一些预设(基于Photoshop)可以传递给质量。我的叉子

  更新2

  我的代码现在是Pillow 2.0的一部分。所以做:

  pip install Pillow

 
关键词: 考试
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://www.31duo.com/news/show-2925989.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4