Моя цель — взять ico-изображение, подобное этому wikipedia.ico , и перевернуть его по вертикали. Моя первая попытка была
$ convert -flip wikipedia.ico flipped.ico
И это работает, за исключением того, что полученный файл flipped.ico
больше исходного:
$ 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
Добавление флага -depth 4
не помогает.
Как я могу получить точно такое же изображение, просто перевернутое?
Изменить :
Благодаря ответу Паоло Джибеллини он получил файл меньшего размера flipped.ico
. Однако использование -colors 16 -depth 4
все еще приводит к файлу, который намного больше оригинала:
$ 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
Я запускаю это на компьютере с Debian. В первой строке вроде еще какое-то 8-битное изображение. Есть ли способ сделать flipped.ico точно такого же размера? Это действительно работает на окнах, как указано в ответе?
Чтобы флаг -depth 4
работал, вы должны использовать также флаг -colors
с желаемой глубиной цвета (в вашем случае 16).
Следующая команда должна сгенерировать значок того же размера, что и оригинал:
$ convert -flip -colors 16 -depth 4 wikipedia.ico flipped.ico
Я протестировал его в Windows ( версия ImageMagick 7.0.3-Q16 ), и перевернутый значок имеет тот же размер , что и оригинал.
См. также этот форум .
-- Обновлять --
Я протестировал приведенную выше команду на компьютере с Debian ( версия ImageMagick 6.3.7-Q16 ) и на машине с CentOS ( версия ImageMagick 6.7.8-9-Q16 ), и в обоих случаях я получил значок с одинаковым размером оригинал (2734 байта).
Как справка, выходные данные разных версий идентифицируют по-разному.
определить 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
определить 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
определить 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
Вы используете обновленную версию ImageMagick?
Мориц Фиршинг
flipped.ico
прежнему намного больше. отредактирую вопрос..Паоло Джибеллини
Мориц Фиршинг
Паоло Джибеллини
Мориц Фиршинг
depth 4
даже не нужен;colors 16
достаточно. Отличный ответ! И спасибо, что попробовали на разных машинах, чтобы направить меня на верный путь!