如何在.NET中调整带有透明度的图像大小,包括GIF和PNG格式,同时保留透明度信息

4

我发现很多人在.NET中调整图像大小时遇到问题,但是没有一个人似乎谈到如何调整具有透明度的图像(像GIF一样的1位和带有alpha通道的PNG),显然是要保留透明度。

也许GDI/GDI+缺乏易于管理这些情况的代码或其他东西?如果不能直接使用.NET,请问您是否知道任何可以做到这一点的库,即使不免费。我只是不希望它是一个命令行工具(否则ImageMagick可能会轻松解决问题),以便更好地进行集成和自动化。

谢谢大家,包括女士们。

2个回答

2

@lazarus:经过两天半的阅读,我看到了你指出的答案。但可能是因为我读得太快了,没有理解其中解释如何处理的部分,只是认为这是一个不知道在过程中通常会失去透明度的人。现在我将尝试使用该代码,看看它是否符合我的需求。谢谢! - Jody Donetti
没问题,我最近也遇到了同样的问题,发现那篇帖子非常有帮助。 - Lazarus
好的,我已经尝试了这段代码,对于PNG到PNG的缩放效果非常好。但是如果我尝试进行PNG到GIF的缩放,它会失败。这可能是可以接受的,因为将8位alpha通道(PNG)转换为1位(GIF)是很困难的。但是,这部分显而易见且不好的是,它甚至不能用于GIF到GIF的缩放。有什么想法可以正确输出调整大小后的GIF吗? - Jody Donetti
@njy,不幸的是,我所有的努力都是基于PNG格式的。如果我有机会,我会进一步研究它,在开发“冲刺”期间没有太多时间进行调查。 - Lazarus

0

http://imageresizing.net 库在 GIF 和 PNG 格式之间转换时保留透明度。它是开源的,所以您可以参考源代码了解如何实现它。我相信在维护透明度方面调色板生成是关键,但从最后一次更改 GIF 和 PNG 量化代码以来已经有些时间了——它已经稳定运行了几年。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接