Преобразование PDF в PNG с прозрачным фоном

У нас есть приложение Ruby on Rails, которое должно конвертировать PDF в PNG с прозрачным фоном. Мы используем rmagick 2.13.1. На наших машинах разработки следующий код работает именно так, как мы этого хотим.

pages = Magick::Image.from_blob(book.to_pdf.render){ self.density = 300 }
page = pages[0]

image_file = Tempfile.new(['preview_image', '.png'])
image_file.binmode
image_file.write( page.to_blob { |opt| opt.format = "PNG" } )

Затем мы сохраняем файл image_file, и все выглядит превосходно. Когда мы развернули на сервере обзора на Heroku, сгенерированное изображение имеет белый фон. Оказывается, что стек кедровых изделий Heroku использует imagemagick ImageMagick 6.5.7-8 2010-12-02, где мы используем ImageMagick 6.7.5-7 2012-05-08 на наших машинах для разработки.

Я искал в сети старые посты, которые могут относиться к более старой версии, чтобы попытаться выяснить, как генерировать прозрачные PNG. Это, безусловно, поддерживается, но до сих пор я не смог определить правильную комбинацию настроек.

Чтобы убедиться, что проблема заключалась не в создании PDF-файла, я загрузил PDF-файл, созданный в Heroku, и успешно преобразовал его, используя приведенный выше код (слегка измененный для чтения файла вместо его создания), в прозрачный PNG.

Некоторые из вещей, которые я пробовал в различных комбинациях:

page.matte = true page.format = "PNG32" page.background_color = "none" page.transparent_color = "white" page.transparent("white")

Итак, вопрос «возможно ли это?». Если да, то какие настройки мне нужно установить на изображении, прежде чем записывать его?

Я также исследую, включая скомпилированный двоичный файл более современного Imagemagick на Heroku.

Любая помощь приветствуется.

Ответы на вопрос(0)

Ваш ответ на вопрос