¿Recortar imágenes usando ImageMagick da como resultado todos los files de salida (TIF) del mismo tamaño?

Estoy escaneando un raro libro antiguo (libro de cocina) para archivar usando mi Canon LiDE 110. Los escaneos son files .TIF , y quiero recortarlos por lotes para uniformidad, etcétera.

Así es como estoy haciendo el cultivo por lotes usando ImageMagick:

 mogrify -gravity North -crop 1600x2512+0+0 -type Palette -define tiff:rows-per-strip=16 -define tiff:subfiletype=PAGE *.tif 

(Las opciones de command-line adicionales como type , rows-per-strip y subfiletype se usaron para mantener las properties idénticas a las originales).

También he intentado recortar cada file a la vez, así:

 mogrify -gravity North -crop 1600x2512+0+0 -type Palette -define tiff:rows-per-strip=16 -define tiff:subfiletype=PAGE IMG_0003.tif 

¡El problema es que las imágenes recortadas resultantes (salida) son todas del mismo tamaño en bytes! (Todos son 4.022.366 bytes para ser exactos).

Imágenes originales [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 

Imágenes recortadas:

 $ 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 

¿Por qué podría estar pasando esto?


Notas al pie:

  1. Con el objective de identificar el problema en la pregunta (si corresponde) estoy haciendo que los files originales estén disponibles públicamente, aquí:

    • https://s3.amazonaws.com/myqtemp/IMG_0002.tif

    • https://s3.amazonaws.com/myqtemp/IMG_0003.tif

    • https://s3.amazonaws.com/myqtemp/IMG_0004.tif

    • https://s3.amazonaws.com/myqtemp/IMG_0005.tif

    • https://s3.amazonaws.com/myqtemp/IMG_0006.tif

    Estos se eliminarán una vez que la pregunta tenga una respuesta / resolución aceptable Eliminado

El command mogrify recorta la image a un tamaño fijo. También elimina cualquier compression presente en la image, principalmente para evitar recomprimir imágenes JPEG y perder calidad de image. También garantiza que el TIFF resultante sea totalmente compatible con el formatting de reference .

El resultado es que obtendrá files de tamaño muy similar para cada uno de sus escaneos:

x_pixels * y_pixels * bytes_per_pixel

En su caso, x_pixels = 1600, y_pixels = 2512 y bytes_per_pixel = 1 porque ha especificado una paleta de colors fija. Al permitir los metadatos y el map de la paleta, los tamaños de file resultantes serán un poco más grandes que 4,019,200 bytes:

 -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 

Puede ver que los metadatos y la paleta toman 203,208 bytes adicionales por encima del tamaño mínimo teórico.

Ahora, hay una serie de extensiones para el formatting TIFF, una de las cuales permite varios types diferentes de compression. Estos types de compression se pueden aplicar con el indicador mogrify -compress {type} para mogrify . Algunos de estos types de compression son con pérdida, otros son sin pérdida. Aquí hay algunos tamaños comparativos para las opciones sin pérdida:

 -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 

Inesperadamente, la compression BZip parece fallar, al less en mi sistema, pero no he podido encontrar ninguna otra instancia de esto reportada a través de mi motor de búsqueda preferido.

El resultado neto es que si modifica ligeramente su command de mogrify , obtendrá files TIFF sin pérdida a un tamaño muy networkingucido:

 mogrify -gravity North -crop 1600x2512+0+0 -type Palette \ -define tiff:rows-per-strip=16 -define tiff:subfiletype=PAGE -compress Zip *.tif