我正在使用 Canon LiDE 110 扫描一本罕见的旧书(食谱)进行存档。扫描结果是.TIF
文件,我想批量裁剪它们以实现均匀性等。
这就是我使用 ImageMagick 进行批量裁剪的方式:
mogrify -gravity North -crop 1600x2512+0+0 -type Palette -define tiff:rows-per-strip=16 -define tiff:subfiletype=PAGE *.tif
(附加命令行选项,例如type
、rows-per-strip
和subfiletype
用于保持属性与原始图像相同。)
我还尝试一次裁剪每个文件,如下所示:
mogrify -gravity North -crop 1600x2512+0+0 -type Palette -define tiff:rows-per-strip=16 -define tiff:subfiletype=PAGE IMG_0003.tif
问题是生成的(输出)裁剪图像的字节大小均相同! (准确地说,全部都是 4,022,366 字节。)
原始图像[1]:
$ identify *.tif
IMG_0002.tif TIFF 1660x2572 1660x2572+0+0 16-bit sRGB 256c 4.273MB 0.000u 0:00.000
IMG_0003.tif TIFF 1652x2556 1652x2556+0+0 16-bit sRGB 256c 4.226MB 0.000u 0:00.000
IMG_0004.tif TIFF 1656x2572 1656x2572+0+0 16-bit sRGB 256c 4.262MB 0.000u 0:00.000
IMG_0005.tif TIFF 1668x2604 1668x2604+0+0 16-bit sRGB 256c 4.347MB 0.000u 0:00.000
IMG_0006.tif TIFF 1680x2544 1680x2544+0+0 16-bit sRGB 256c 4.277MB 0.000u 0:00.000
裁剪图像:
$ identify *.tif
IMG_0002.tif TIFF 1600x2512 1600x2512+30+0 16-bit sRGB 256c 4.022MB 0.000u 0:00.000
IMG_0003.tif TIFF 1600x2512 1600x2512+26+0 16-bit sRGB 256c 4.022MB 0.000u 0:00.000
IMG_0004.tif TIFF 1600x2512 1600x2512+28+0 16-bit sRGB 256c 4.022MB 0.000u 0:00.000
IMG_0005.tif TIFF 1600x2512 1600x2512+34+0 16-bit sRGB 256c 4.022MB 0.000u 0:00.000
IMG_0006.tif TIFF 1600x2512 1600x2512+40+0 16-bit sRGB 256c 4.022MB 0.000u 0:00.000
为什么会发生这种情况?
脚注:
为了确定问题中的问题(如果有),我暂时将原始文件公开,如下:
一旦问题得到可接受的答案/解决方案,这些内容将被删除已删除。
答案1
该mogrify
命令将图像裁剪为固定大小。它也是消除任何压缩存在于图像中,主要是为了避免重新压缩 JPEG 图像并损失图像质量。它还确保生成的 TIFF 与基线格式。
结果是您每次扫描都会得到大小非常相似的文件:
x_pixels * y_pixels * bytes_per_pixel
在您的情况下, x_pixels=1600、y_pixels=2512 和 bytes_per_pixel=1 因为您指定了固定调色板。考虑到元数据和调色板映射,生成的文件大小将略大于 4,019,200 字节:
-rw-r--r--+ 1 roaima users 4225562 Dec 30 16:28 IMG_0003.tif # Original
-rw-r--r--+ 1 roaima users 4022354 Jan 5 09:55 IMG_0003.tif # Mogrified
您可以看到元数据和调色板比理论最小大小多了 203,208 字节。
现在,有一个扩展数量TIFF 格式,其中一种格式允许多种不同类型的压缩。这些压缩类型可以通过-compress {type}
标志 to 来应用mogrify
。其中一些压缩类型是有损的,其他压缩类型是无损的。以下是无损选项的一些比较尺寸:
-rw-r--r--+ 1 roaima users 4022354 Jan 5 10:02 IMG_0003.tif # None
-rw-r--r--+ 1 roaima users 4022354 Jan 5 10:02 IMG_0003.tif # BZip
-rw-r--r--+ 1 roaima users 446952 Jan 5 10:02 IMG_0003.tif # LZW
-rw-r--r--+ 1 roaima users 594040 Jan 5 10:02 IMG_0003.tif # RLE
-rw-r--r--+ 1 roaima users 429692 Jan 5 10:02 IMG_0003.tif # Zip
-rw-r--r--+ 1 roaima users 478622 Jan 5 10:02 IMG_0003.tif # LZMA
出乎意料的是,BZip 压缩似乎失败了——至少在我的系统上——但我无法找到通过我的首选搜索引擎报告的任何其他实例。
最终结果是,如果mogrify
稍微修改命令,您将获得大小大大减小的无损 TIFF 文件:
mogrify -gravity North -crop 1600x2512+0+0 -type Palette \
-define tiff:rows-per-strip=16 -define tiff:subfiletype=PAGE -compress Zip *.tif