私はアーカイブのための珍しい古い本(料理本)をスキャンするために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
また、次のように各ファイルを一度に1つずつ切り取ろうとしました。
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}
フラグを介してに適用できます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