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, но я ожидаю, что вы обнаружите, что некоторая информация о прозрачности будет потеряна. Это неизбежно.