0

我需要将 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();
        }

如果有人对此有经验,请提供帮助。谢谢

4

1 回答 1

2

Rendering.SaveAlpha 属性不适用于 GIF。

GIF 文件中的颜色定义存储在调色板中,而不是作为通道。调色板最多可包含 256 种颜色,包括一种设置为透明的颜色。与使用 Alpha 通道不同,它没有透明度。每个像素要么是不透明的颜色,要么是透明的。

要保留 Alpha 通道,您需要渲染为另一种格式,例如 PNG、BMP、TIFF(灰度、RGB 和 CMYK)或 Photoshop PSD。如果结果看起来不错,请尝试将其转换为透明 GIF,但我希望您会发现一些透明度信息会丢失。这是不可避免的。

于 2013-12-20T15:29:57.810 回答