저는 보관을 위해 희귀한 오래된 책(요리책)을 스캔하기 위해 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}
플래그를 통해 에 적용 할 수 있습니다 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