2014-06-17 3 views
0

в тот момент, когда я сталкиваюсь с несколькими проблемами, конвертируя PDF-файл в PNG. Прозрачность теряется из исходного файла pdf.Конвертировать многостраничный PDF в PNG с прозрачностью

Я тестировал следующие терминальные инструменты для создания png: Инструменты GhostScript, Imagemagick и pdf из инструментов poppler, всегда на дебианской системе.

Изображение должно иметь то же измерение, что и в формате pdf, а также ту же прозрачность.

используемые команды:

gs -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=test%d.png -r96 -q design.pdf -c quit 
convert design.pdf test%d.png 
convert design.pdf -channel rgba -alpha on PNG32:test%d.png 
convert -background none -colorspace srgb design.pdf -colorspace srgb -channel rgba -alpha on PNG32:test%d.png 
pdftoppm -png file.pdf test 

Результат не ожидается, PNG с прозрачностью. Фон белый, должен быть 100% прозрачным. Кроме того, есть зеленый бар и должен быть полупрозрачным. Во всех моих попытках результат заканчивается в более светлой зеленой коробке без прозрачности.

Чтобы увидеть мой результат, я загрузил исходный pdf-файл, ошибочный созданный png и ожидаемый результат (экспорт из фотошопа).

PDF: http://speedy.sh/W75HP/source-file.pdf 
Result: http://speedy.sh/hfZMt/faulty-created-design.png 
Expected: http://speedy.sh/7mpEk/design-the-way-it-should-be.png 

мне удалось получить белый фон прозрачным, но фактическая прозрачность файла включая полупрозрачный зеленый бар/коробку не преобразуются должным образом.

Какое решение для моей проблемы?

С наилучшими пожеланиями, Chris

// UPDATE Итак, мы нашли решение, с другим 3th инструментом партии, который производит свой ожидаемый результат на легком пути.

inkscape design.pdf -z --export-dpi=100 --export-png=design.png 

Thx за помощью

+0

* Фон белый, должно быть 100% прозрачный. * - Фон страницы PDF белый в соответствии со спецификацией. Возможно, ваши инструменты уважают спецификацию и сначала рисуют белый фон. – mkl

+0

@mkl: Нет, по умолчанию фон страницы PDF не белый. По умолчанию он будет отображаться * белый. Но вы можете изменить большинство читателей, чтобы показать это как шахматная доска, подобная шаблону *** IF *** это прозрачно. Для Adobe Reader: убедитесь, что флажок включен в настройках * Настройки -> Отображение страницы -> Содержание страницы и информация -> Показать сетку прозрачности * –

+0

@KurtPfeifle "Обозначение текущей страницы обобщается для ссылки на группу прозрачности, состоящую из всего стопки предметов, размещенных на странице, составленных на фоне чистого белого и полностью непрозрачного ». ... «Фон является номинально белым, хотя и изменяется в зависимости от реальных свойств среды.Тем не менее, некоторые подходящие читатели могут выбрать другой фон, например, шахматная доска или сетка, чтобы помочь визуализировать эффекты прозрачности в художественных произведениях ». Таким образом, он * белый, но может быть * визуализирован * по-разному. – mkl

ответ

0

Использования Imagick (PHP Extension) Я конвертирован цвета фона в прозрачный с некоторым кодом, как это (я преобразовал JPG с белым фоном в прозрачный PNG):

$mask = new Imagick('/your/file/path.jpg'); 
$mask->setImageFormat('png'); 
$mask->paintTransparentImage('white', 0, 1000); // $fuzz = 1000 (3rd parameter) is just a guess 

Посмотрите здесь: http://de3.php.net/manual/en/imagick.painttransparentimage.php

корреспондент Imagick документации: http://www.imagemagick.org/script/command-line-options.php#transparent

С уважением, Майкл

 Смежные вопросы

  • Нет связанных вопросов^_^