Spiegeln Sie ein ico-Bild ohne Qualitätsverlust oder Größenzunahme

Mein Ziel ist es, ein ico-Bild wie dieses wikipedia.ico zu nehmen und es vertikal zu spiegeln. Mein erster Versuch war

$ convert -flip wikipedia.ico flipped.ico

Und es funktioniert, außer dass die resultierende Datei flipped.icogrößer als das Original ist:

$ 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

Das Hinzufügen der Flagge -depth 4hilft nicht.

Wie bekomme ich genau das gleiche Bild, nur umgedreht?

Bearbeiten :

Dank der Antwort von Paolo Gibellini wurde die Datei kleiner flipped.ico. Die Verwendung von -colors 16 -depth 4still führt jedoch zu einer Datei, die viel größer als das Original ist:

$ 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

Ich führe dies auf einem Debian-PC aus. In der ersten Zeile scheint es noch ein 8-Bit-Bild zu geben. Gibt es eine Möglichkeit, dass flipped.ico genau dieselbe Größe hat? Funktioniert das wirklich unter Windows, wie in der Antwort erwähnt?

Antworten (1)

Damit die Flagge -depth 4funktioniert, sollten Sie auch die Flagge -colorsmit der gewünschten Farbtiefe (in Ihrem Fall 16) verwenden.

Der folgende Befehl sollte ein Symbol mit der gleichen Größe wie das Original erzeugen:

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

Ich habe es unter Windows ( ImageMagick Version 7.0.3-Q16 ) getestet und das umgedrehte Symbol hat die gleiche Größe wie das Original.

Siehe auch dieses Forum .

-- Aktualisieren --

Ich habe den obigen Befehl auf einem Debian - Rechner ( ImageMagick Version 6.3.7-Q16 ) und auf einem CentOS - Rechner ( ImageMagick Version 6.7.8-9-Q16 ) getestet und in beiden Fällen habe ich ein Symbol mit der gleichen Größe von erhalten das Original (2734 Byte).

Als Referenz ist die Ausgabe verschiedener Versionen von Identify unterschiedlich.

identifizieren 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

identifizieren 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

identifizieren 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

Verwenden Sie eine aktualisierte Version von ImageMagick?

Danke, das ist schon eine Verbesserung! Auf meiner Debian-Box ist die Größe von flipped.icojedoch immer noch viel größer. Ich werde die Frage bearbeiten..
Das ist komisch. Wenn es möglich ist, werde ich auf einer Debian-Maschine testen.
Das wäre toll! Hat der Test zu einem Ergebnis geführt?
Ich habe die Antwort aktualisiert.
Ich hatte in meiner obigen Frage Version 6.9.9-39 Q16 verwendet. Jetzt habe ich eine andere Maschine mit Version 6.9.7-4 Q16 ausprobiert und es hat einwandfrei funktioniert. Scheint eine Art Fehler in meiner speziellen Version zu sein. Auch nicht, dass die Flagge depth 4nicht einmal notwendig wäre; colors 16reicht. Gute Antwort! Und danke, dass Sie verschiedene Maschinen ausprobiert haben, um mich auf den richtigen Weg zu bringen!