Скрепка - Сохранение прозрачности при конвертации SVG в PNG - PullRequest
3 голосов
/ 05 марта 2012

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

Пробовал с помощью paperclip convert_options, но он не давал правильного вывода, например, изображение имеет несколько пикселей белого цвета по всей границе.

Пример: trans << "-fuzz 0% -прозрачный 'rgb (255,255,255)'" </p>

Наконец-то он начал работать с методом after_save, который использует inkscape для преобразования моего SVG в PNG и замены PNG, сгенерированного paperclip.

Пример: inkscape --export-png = OUTPUT.png INPUT.svg

Но это похоже на двойную работу: использовать скрепку (IM), а также inkscape. Итак, есть ли другой способ получить правильный PNG, используя скрепку с прозрачным фоном, когда мой загруженный SVG имеет прозрачный фон.

Заранее спасибо,

Ответы [ 2 ]

3 голосов
/ 13 ноября 2013

Я исправил проблему с помощью опции 'source_file_options' Paperclip:

has_attached_file :icon,
                    source_file_options:  { all: '-background transparent' },
                    styles: {
                      :"200" => ["200", :png],
                    }
2 голосов
/ 14 марта 2012

Наконец-то проблема была решена сама ... :) Это было плохо, так как я не видел, как "-layers merge" добавлял в мою команду скрепки от инициализаторов ...

Paperclip :: Attachment.default_options [: convert_options] = {: all => '-layers merge'}

Наконец-то все заработало с самой paperclip (IM) ... Надеюсь, это кому-нибудь поможет.....:)

...