AbcPdf PDF в GIF конвертирование с сохранением прозрачности

Мне нужно конвертировать PDF в GIF с прозрачностью. Я нашел пример кода на официальном сайте, но результат не соответствует ожидаемому. Общая проблема - потеря прозрачности.

Код, который я попробовал ниже:

using (var doc = new Doc()) {
            doc.Read(source);
            doc.Rendering.SaveAlpha = true;
            // the following lines from the official site. 
            // And this is showing blue background if I set this. 
            // But I don't need this blue background. 
            // Do not set anything special won't give good result.

            //doc.Color.SetRgb(0, 0, 255); // blue background ...
            //doc.FillRect(); // ... so you can see transparency

            doc.Rendering.Save(destination);
            doc.Clear();
        }

Пожалуйста, помогите, если у кого-то есть опыт с этим. Спасибо

1 ответ

Свойство Rendering.SaveAlpha не применяется к GIF-файлам.

Цветовые определения в GIF-файле хранятся в палитрах, а не в виде каналов. Палитра может содержать до 256 цветов, включая один прозрачный цвет. В отличие от использования альфа-каналов, степень прозрачности отсутствует. Каждый пиксель будет либо непрозрачного цвета, либо прозрачным.

Чтобы сохранить альфа-канал, вам необходимо выполнить рендеринг в другой формат, такой как PNG, BMP, TIFF (оттенки серого, RGB и CMYK) или Photoshop PSD. Если результаты выглядят хорошо, попытайтесь преобразовать их в прозрачный GIF, но я ожидаю, что вы обнаружите, что некоторая информация о прозрачности будет потеряна. Это неизбежно.

Другие вопросы по тегам