当前位置: 首页 > 知识库问答 >
问题:

Pillow:JPEG压缩TIFF的质量控制和二次采样

呼延衡
2023-03-14

我正在用枕头创建多页的tiff。我想用JPEG压缩图层,我看到我可以用压缩选项:https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html#saving-tiff-images

多谢了。

共有1个答案

濮阳宁
2023-03-14

我做了一些实验:

from PIL import Image
import numpy as np
import PIL.TiffImagePlugin as tiff

# Turn on debugging for some insights
TiffImagePlugin.DEBUG = True

# Create Numpy random image and make PIL Image from it
randImage= np.random.randint(0,256,(480,640,3), dtype=np.uint8)
i = Image.fromarray(randImage)

# Save with JPEG compression and file is smaller and "tiffdump" agrees it is JPEG encoded
# NOTE: It is "jpeg", not "tiff_jpeg" like the docs say
i.save("result.tif",compression="jpeg")

# Try and modify settings
import PIL.TiffImagePlugin as tiff

# Set some tags and see if they are saved
ifd=tiff.ImageFileDirectory_v2()
ifd[315]="Funky 315"
ifd[316]="Funky 316"

# I tried setting the YCbCrChromaSubSampling here but it makes no difference - maybe I did it wrong!
# It gets reported differently from how I expect when examined with "tiffdump"
# ifd[530]=0x10001

i.save("result.tif",compression="jpeg",tiffinfo=ifd)  

使用tiffdump检查:

tiffdump result.tif

Magic: 0x4949 <little-endian> Version: 0x2a <ClassicTIFF>
Directory 0: offset 511960 (0x7cfd8) next 0 (0)
ImageWidth (256) SHORT (3) 1<640>
ImageLength (257) SHORT (3) 1<480>
BitsPerSample (258) SHORT (3) 3<8 8 8>
Compression (259) SHORT (3) 1<7>        <--- New style JPEG
Photometric (262) SHORT (3) 1<2>
StripOffsets (273) LONG (4) 1<8>
SamplesPerPixel (277) SHORT (3) 1<3>
RowsPerStrip (278) SHORT (3) 1<480>
StripByteCounts (279) LONG (4) 1<511951>
PlanarConfig (284) SHORT (3) 1<1>
Artist (315) ASCII (2) 10<Funky 315\0>           <--- gets saved
HostComputer (316) ASCII (2) 10<Funky 316\0>     <--- gets saved
JPEGTables (347) UNDEFINED (7) 289<0xff 0xd8 0xff 0xdb 00 0x43 00 0x8 0x6 0x6 0x7 0x6 0x5 0x8 0x7 0x7 0x7 0x9 0x9 0x8 0xa 0xc 0x14 0xd ...>
 类似资料:
  • 本文向大家介绍Android图片压缩(质量压缩和尺寸压缩),包括了Android图片压缩(质量压缩和尺寸压缩)的使用技巧和注意事项,需要的朋友参考一下 在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成

  • 我正在尝试使用Python中的和/或包。我正在尝试以csv格式压缩数据库转储,然后将其放入文件。我让它工作与一次压缩与两个包。 其代码如下所示: 我浏览了文档,也查找了有关压缩技术的信息,但似乎没有关于什么是一次性压缩和增量压缩的全面信息。

  • 问题内容: 我在将png转换为tiff时遇到问题。转换很好,但是图像很大。我认为问题是我没有正确执行压缩?有人有什么建议吗? 这是代码示例 问题答案: 仅创建一个对象,不会将其链接回其他任何对象。 我看不到您的代码中有任何机制可用于。 我相信代替: 您需要使用:

  • 主要内容:软件质量保证,软件质量控制,质量保证与质量控制的区别软件质量保证 软件质量保证(也称为QA)是一系列任务,用于防止缺陷并确保为特定应用程序设计的技术,方法,方法和过程必须正确实施。这是软件系统开发过程中的持续过程。 应用程序单元的开发按照其开发顺序在质量保证规范下进行检查。 质量保证测试确保了高质量软件的开发,因为它主要关注软件开发过程中的高质量流程,良好的质量管理体系和定期的一致性审核。它是一种管理工具,包括计划和系统的活动和文件,以防止与质量有

  • 本文向大家介绍质量保证与质量控制之间的差异,包括了质量保证与质量控制之间的差异的使用技巧和注意事项,需要的朋友参考一下 质量保证和质量控制都主要关注应用程序的无缺陷交付。在这两种质量保证中,质量保证被称为质量保证(QA),重点在于防止缺陷。质量保证可确保为项目设计的方法,技术,方法和过程能够正确实施,而质量控制被称为质量控制,重点在于发现缺陷。质量控制确保正确设计项目中设计的方法,技术,方法和过程

  • 我需要压缩一个有几个灰色16bit图像(多页)的tif文件。我已经尝试使用ImageIO如下所示:使用Java ImageIO进行Tiff压缩最初,tif文件中的每个图像都来自另一个Tiff文件。当我想使用压缩机时,我有以下选项: null