FreeImage 中的透明度

发布于 2024-10-13 05:28:55 字数 382 浏览 6 评论 0原文

我使用 FreeImage C# 包装器成功将具有透明背景的 24 位 PNG 图像转换为 4 位 PNG 图像。然而,4 位图像的背景变为黑色而不是透明。这是代码。有什么想法吗?

FIBITMAP dib = FreeImageAPI.FreeImage.LoadEx("C:\title_normal.png"); FreeImage.SetTransparent(dib, true); FreeImage.SaveEx(ref dib, "C:\title_normal.png", FREE_IMAGE_FORMAT.FIF_PNG, FREE_IMAGE_SAVE_FLAGS.PNG_Z_DEFAULT_COMPRESSION, FREE_IMAGE_COLOR_DEPTH.FICD_04_BPP, true);

I am successfully converting a 24-bit PNG image which has a transparent background to 4-bit PNG image using FreeImage C# wrapper. However, the 4-bit image's background becomes black instead of being transparent. Here is the code. Any ideas?

FIBITMAP dib = FreeImageAPI.FreeImage.LoadEx("C:\title_normal.png");
FreeImage.SetTransparent(dib, true);
FreeImage.SaveEx(ref dib, "C:\title_normal.png", FREE_IMAGE_FORMAT.FIF_PNG, FREE_IMAGE_SAVE_FLAGS.PNG_Z_DEFAULT_COMPRESSION, FREE_IMAGE_COLOR_DEPTH.FICD_04_BPP, true);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可是我不能没有你 2024-10-20 05:28:55

其实我想通了。如果有人感兴趣的话,这里是代码:

            dib = FreeImageAPI.FreeImage.LoadEx("C:\\title_selected.png");
            dib = FreeImage.ConvertColorDepth(dib, FREE_IMAGE_COLOR_DEPTH.FICD_04_BPP);
            byte[] Transparency = new byte[1];
            Transparency[0] = 0x00;
            FreeImage.SetTransparencyTable(dib, Transparency);
            FreeImage.Save(FREE_IMAGE_FORMAT.FIF_PNG, dib, "C:\\title_selected1.png", FREE_IMAGE_SAVE_FLAGS.DEFAULT);

生成的图像是 4 位透明 PNG!

Actually I figured out. Here is the code if someone is interested:

            dib = FreeImageAPI.FreeImage.LoadEx("C:\\title_selected.png");
            dib = FreeImage.ConvertColorDepth(dib, FREE_IMAGE_COLOR_DEPTH.FICD_04_BPP);
            byte[] Transparency = new byte[1];
            Transparency[0] = 0x00;
            FreeImage.SetTransparencyTable(dib, Transparency);
            FreeImage.Save(FREE_IMAGE_FORMAT.FIF_PNG, dib, "C:\\title_selected1.png", FREE_IMAGE_SAVE_FLAGS.DEFAULT);

Resulting image is 4-bit transparent PNG!

爱你是孤单的心事 2024-10-20 05:28:55

我不认为 4 位 png 有 Albha 通道。

检查这里

http://en.wikipedia.org/wiki/Portable_Network_Graphics

I dont think 4-bit png has channel for Albha.

check here

http://en.wikipedia.org/wiki/Portable_Network_Graphics

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文