«Почему это происходит?»
Две возможные причины объединения:
Первый: Ваш ввод PostScript, скорее всего, не содержит фона. По сути, это «прозрачно». При печати это выглядит как обычно. (Некоторые файлы PostScript имеют белый фон. И при печати это все равно выглядит как обычно. Вы обнаружите, что только когда вы пытаетесь ретроспективно добавить какой-либо водяной знак в «фон» файла, и когда это, кажется, не работает. В этих случаях штрихи водяного знака покрыты белой областью, которая снова покрыта оригинальным штрихованным содержимым PS ...)
Секунда: Команда convert a.ps a.png
не выполняет работу сама. Он вызывает внешнюю 'делегат' вспомогательную программу, скорее всего, Ghostscript. И у Ghostscript есть разные способы настроить вывод PNG. Вы можете запросить Ghostscript о all его «устройствах» вывода следующим образом:
gs -h
Теперь ограничьте запрос только строками, содержащими устройства, связанные с PNG:
gs -h | grep png
Вы увидите, что есть pngalpha
устройство вывода. Этот может выводить прозрачные пленки для изображений PNG.
Далее запрос convert
о его полном списке делегатов:
convert -list delegate
Вы увидите несколько десятков команд, которые convert
использует за вашей спиной, чтобы выполнить свою работу. Давайте посмотрим, какие команды он использует для обработки ввода или вывода PNG:
convert -list delegate | grep -i png
Вероятно, вы обнаружите gs ... -sDEVICE=pngalpha ...
командные строки для некоторых типов преобразования.
«Как получить изображение PNG с белым фоном?»
Попробуйте это:
convert a.ps -background white a.png