【问题标题】:How can I scale up an indexed PNG and save it out in ASP.NET?如何扩大索引 PNG 并将其保存在 ASP.NET 中?
【发布时间】:2011-01-02 04:59:18
【问题描述】:

我已经让 GDI+ 读取 PNG,将其放大(最近的邻居)并将其保存,但不幸的是,如果我加载索引的 PNG,它仍然会将其保存为 32 位 PNG,这是一个很大的浪费.

我见过一些很棒的第三方工具可以让你加载/保存 PNG,但不幸的是我不相信我的主机会允许它,因为它使用中等信任度并且这些工具加载 COM DLL。

我一直在使用诸如 PngBitmapEncoder 之类的 WPF 库(我正在运行 .net 4),但是在制作 PNG 的缩放副本时,我没有任何运气在这里保留索引设置,更不用说我是否能够弄清楚如何使用最近邻缩放(我确实在 GDI+ 中工作过)。

我搞砸了吗?是时候开始一一读取字节了吗?哈哈。我希望不是因为我当然没有那种背景。非常感谢任何帮助。

【问题讨论】:

    标签: asp.net wpf gdi+ png


    【解决方案1】:

    我假设使用的是 Image::Save 方法来保存 PNG。 你怎么称呼 Save - 像这样:

       CLSID pngClsid;
       GetEncoderClsid(L"image/png", &pngClsid);
       image.Save(L"Mosaic2.png", &pngClsid, NULL);
    

    第三个参数(在上面的示例中为 NULL)指定特定于编码器的参数 - 在本例中为 PNG 编码器。

    您是否检查过PNG编码器支持哪些参数?也许你可以指定颜色深度。

    获取编码器的参数:

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2012-10-16
      相关资源
      最近更新 更多