voltear una ico-imagen sin pérdida de calidad o aumento de tamaño

Mi objetivo es tomar una ico-imagen, como esta wikipedia.ico y voltearla verticalmente. Mi primer intento fue

$ convert -flip wikipedia.ico flipped.ico

Y funciona, excepto que el archivo resultante flipped.icoes más grande que el original:

$ identify wikipedia.ico 
wikipedia.ico[0] ICO 48x48 48x48+0+0 4-bit sRGB 2734B 0.000u 0:00.000
wikipedia.ico[1] ICO 32x32 32x32+0+0 4-bit sRGB 2734B 0.000u 0:00.000
wikipedia.ico[2] ICO 16x16 16x16+0+0 4-bit sRGB 2734B 0.000u 0:00.000

$ identify flipped.ico 
flipped.ico[0] ICO 48x48 48x48+0+0 8-bit sRGB 15086B 0.000u 0:00.000
flipped.ico[1] ICO 32x32 32x32+0+0 8-bit sRGB 15086B 0.000u 0:00.000
flipped.ico[2] ICO 16x16 16x16+0+0 8-bit sRGB 15086B 0.000u 0:00.000

Agregar la bandera -depth 4no ayuda.

¿Cómo puedo obtener exactamente la misma imagen, simplemente volteada?

Editar :

Gracias a la respuesta de Paolo Gibellini, obtuvo un archivo más pequeño flipped.ico. Sin embargo, el uso de imágenes -colors 16 -depth 4fijas da como resultado un archivo mucho más grande que el original:

$ convert -flip -colors 16 -depth 4 wikipedia.ico flipped.ico
$ ls -l flipped.ico wikipedia.ico
[...] 10734 May 14 21:05 flipped.ico
[...]  2734 May 14 09:41 wikipedia.ico
$ identify flipped.ico 
flipped.ico[0] ICO 48x48 48x48+0+0 8-bit sRGB 10734B 0.000u 0:00.009
flipped.ico[1] ICO 32x32 32x32+0+0 4-bit sRGB 10734B 0.000u 0:00.000
flipped.ico[2] ICO 16x16 16x16+0+0 4-bit sRGB 10734B 0.000u 0:00.000

Estoy ejecutando esto en una PC Debian. En la primera línea, todavía parece haber una imagen de 8 bits. ¿Hay alguna manera de tener flipped.ico exactamente del mismo tamaño? ¿Esto realmente funciona en Windows, como se menciona en la respuesta?

Respuestas (1)

Para que la bandera -depth 4funcione, debe usar también la bandera -colorscon la profundidad de color deseada (en su caso, 16).

El siguiente comando debería generar un icono con el mismo tamaño del original:

$ convert -flip -colors 16 -depth 4 wikipedia.ico flipped.ico

Lo probé en Windows ( ImageMagick versión 7.0.3-Q16 ) y el ícono volteado tiene el mismo tamaño que el original.

Véase también este foro .

-- Actualizar --

Probé el comando anterior en una máquina Debian ( ImageMagick versión 6.3.7-Q16 ) y en una máquina CentOS ( ImageMagick versión 6.7.8-9-Q16 ), y en ambos casos obtuve un ícono con el mismo tamaño de el original (2734 bytes).

Solo como referencia, la salida de diferentes versiones de identidad es diferente.

identificar 6.3.7

identify wikipedia.ico
wikipedia.ico[0] ICO 48x48 48x48+0+0 DirectClass 8-bit 2.66992kb
wikipedia.ico[1] ICO 32x32 32x32+0+0 DirectClass 8-bit 2.66992kb
wikipedia.ico[2] ICO 16x16 16x16+0+0 DirectClass 8-bit 2.66992kb

identificar 6.7.8-9

identify wikipedia.ico
wikipedia.ico[0] ICO 48x48 48x48+0+0 4-bit DirectClass 2.73KB 0.000u 0:00.000
wikipedia.ico[1] ICO 32x32 32x32+0+0 4-bit DirectClass 2.73KB 0.000u 0:00.000
wikipedia.ico[2] ICO 16x16 16x16+0+0 4-bit DirectClass 2.73KB 0.000u 0:00.000

identificar 7.0.3

identify wikipedia.ico
wikipedia.ico[0] ICO 48x48 48x48+0+0 4-bit sRGB 2.73KB 0.000u 0:00.000
wikipedia.ico[1] ICO 32x32 32x32+0+0 4-bit sRGB 2.73KB 0.000u 0:00.000
wikipedia.ico[2] ICO 16x16 16x16+0+0 4-bit sRGB 2.73KB 0.000u 0:00.000

¿Está utilizando una versión actualizada de ImageMagick?

gracias, eso ya es una mejora! Sin embargo, en mi caja de Debian, el tamaño de flipped.icosigue siendo mucho mayor. voy a editar la pregunta..
Esto es raro. Cuando sea posible, probaré en una máquina Debian.
¡Eso seria genial! ¿La prueba llevó a alguna conclusión?
He actualizado la respuesta.
Había usado la versión 6.9.9-39 Q16 en mi pregunta anterior. Ahora probé una máquina diferente con la versión 6.9.7-4 Q16 y funcionó perfectamente. Parece ser algún tipo de error en mi versión particular. Tampoco es que la bandera depth 4ni siquiera sea necesaria; colors 16es suficiente. ¡Gran respuesta! ¡Y gracias por probar en diferentes máquinas para ponerme en el camino correcto!