В настоящее время я запускаю эту команду на сервере CentOs Unix с ImageMagick версии 6.7.2-7.
convert Test.tif -channel All -separate -resize 50% -background none -alpha copy -combine Test10.tif
Он делает все, что мне нужно, но добавляет белый фон к каждому из каналов, как показано здесь:
тестовый файл до и после команды, как показано в Photoshop CS4
Я перепробовал множество различных настроек для альфа-фона и т. Д., Но не могу сохранить его прозрачность на каналах RGB. Это тестовый файл, если вы хотите проверить его
Я не знаю, нужно ли мне запускать эту команду и указывать профиль — он настолько близок к тому, чтобы быть правым — это может быть что-то очень простое, но я не могу найти никого, кто бы упоминал эту конкретную проблему с .tif?
Заранее спасибо.
Результат После первого предложения от fmw42 — запустить на Windows 7 Профессиональная версия: ImageMagick 7.0.8-25 Q16 x64
Кажется, это работает для меня в Imagemagick 6.9.10.25 Q16 Mac OSX
convert -quiet \( test.tif[0] -channel alpha -negate +channel \) test.tif[1] -background none -layers merge -resize 50% test_result.tif
http://www.fmwconcepts.com/misc_tests/tif_proc/test_resize.tif
Проблема в том, что Imagemagick не обрабатывает прозрачность фона в TIF-файлах так чисто, как могла бы. В Photoshop у вас есть один слой с прозрачностью фона. Но Imagemagick видит два слоя. Первый имеет прозрачность (но имеет неправильную полярность и должен быть инвертирован). Это полный размер. Но второй слой также содержит прозрачность и не является полным размером первого слоя. Таким образом, нужно отрицать первый слой, использовать -layers merge, чтобы объединить второй поверх первого с правильным смещением, а затем изменить его размер. Imagemagick ссылается на слои, начиная с индекса 0, как в [0].
Синтаксис Windows немного отличается (удалите \ s):
convert -quiet ( test.tif[0] -channel alpha -negate +channel ) test.tif[1] -background none -layers merge -resize 50% test_result.tif
Если в файле .bat, вам нужно удвоить% до %%.
Других решений пока нет …