【问题标题】:How to resize an image in .NET with transparency, both GIFs and PNGs, keeping transparency info如何在 .NET 中调整具有透明度的图像大小,包括 GIF 和 PNG,保持透明度信息
【发布时间】:2011-01-22 17:49:09
【问题描述】:

我发现了很多关于在 .NET 中调整图像大小的问题等等,但似乎没有一个人谈论调整具有透明度的图像大小(像 GIF 一样的 1bit 和像 PNG 那样的带 alpha 通道),显然试图保持这一点透明度。

也许 GDI/GDI+ 缺少代码来轻松管理这些场景或其他什么?如果无法按原样使用 .NET,您是否知道任何可以做到这一点的库,即使不是免费的。我只是不希望它成为一个命令行工具(否则 ImageMagick 可能很容易做到这一点),以实现更好的集成和自动化目的。

谢谢各位。哦,还有女孩。

【问题讨论】:

    标签: c# image-processing resize image-manipulation


    【解决方案1】:

    http://imageresizing.net 库在 GIF 和 PNG 格式之间转换时保持透明度。它是开源的,因此您可以参考源代码以了解如何实现它。我相信调色板生成是保持透明度的关键,但是自从我对 GIF 和 PNG 量化代码进行最后一次更改以来已经有一段时间了 - 它已经稳定了好几年了。

    【讨论】:

      【解决方案2】:

      这实际上就是您要问的Why does resizing a png image lose transparency?

      【讨论】:

      • @lazarus:像你指出的那样阅读了2个半天的答案,我碰巧也读了那个!但可能读得太快了,没有得到解释如何处理的部分,只是坚称这是一个不知道你通常会在这个过程中失去透明度的人。我现在将尝试该代码,看看它是否按我的需要工作。现在谢谢!
      • 没问题,我自己最近也遇到了同样的问题,发现这篇文章很有帮助。
      • 好的,我已经尝试了代码,它非常适合 png->png 重新缩放。但是如果我尝试做 png->gif 重新缩放它会失败。这可能没问题,很难将 8 位 alpha 通道 (png) 转换为 1 位 (gif)。但是,这在某种程度上既明显又不好,它甚至不适用于 gif->gif 重新缩放。关于如何正确输出调整大小的 gif 的任何想法?
      • @njy,不幸的是我所有的努力都是基于 PNG 的。如果有机会,我会进一步研究它,目前处于开发“冲刺”阶段,因此没有太多时间进行调查。
      猜你喜欢
      • 2010-09-21
      • 2011-10-14
      • 2011-06-21
      • 2015-10-04
      • 2013-04-11
      • 2016-07-08
      • 2014-05-21
      • 2012-03-29
      相关资源
      最近更新 更多