【问题标题】:Converting a PNG compressed byte array to BMP byte array将 PNG 压缩字节数组转换为 BMP 字节数组
【发布时间】:2012-03-05 12:12:22
【问题描述】:

我遇到了这个问题,到目前为止,我读过的解决方案都不适合。我追求一些智慧..

我有一个从 PNG 图像派生的 Base64 编码字符串。我必须向水晶报告提供位图的字节数组。当然很容易从 Base64 字符串中获取字节数组......所以我需要一些帮助,从 PNG 字节数组到位图字节数组......

有什么想法吗?使用 .NET 3.5 框架。

【问题讨论】:

    标签: c# .net image bitmap png


    【解决方案1】:

    您需要使用PngBitmapDecoder。

    http://msdn.microsoft.com/en-us/library/aa970062.aspx

    【讨论】:

    • 我已经找到了。那里使用的 Image 类 (System.Windows.Controls.Image) 没有保存功能。所以我似乎无法将它保存回字节数组...
    • 当然可以;接下来使用BmpBitmapEncoder。它的Save 方法会将其写入您选择的存储介质(包括内存缓冲区)。或者自己建立一个BMP header,真的很简单。
    • 啊...我正要这么说。完全没有想到使用 BmpEncoder...谢谢 :)
    • 不客气。如果这对您有用,我们将不胜感激:)
    • 嘿,当我从 PngDecoder 转到 BmpEncoder 时,我得到的只是一个黑盒子... PngBitmapDecoder 解码器 = new PngBitmapDecoder(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); BitmapSource 源 = 解码器.Frames[0]; BmpBitmapEncoder 编码器 = new BmpBitmapEncoder();编码器.Frames.Add(BitmapFrame.Create(source)); MemoryStream bitmapStream = new MemoryStream();编码器.保存(位图流);你能帮忙吗?
    【解决方案2】:

    Winform Image 类提供 Save 方法。

    对于 WPF,请参阅: WPF Image to byte[]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 2015-12-27
      • 2019-11-18
      • 1970-01-01
      • 2012-03-21
      • 2012-02-15
      • 1970-01-01
      相关资源
      最近更新 更多