Silverlight 4:如何将bmp字节数组转换为png字节数组?

时间:2012-02-10 18:52:19

标签: c# wcf silverlight image bmp

我有一个wcf服务,它在byte []中返回一个bmp。但是Silverlight的Image控件不支持显示bmp,所以我需要将bmp byte []转换为png或jpg byte []。那里有一个图书馆可以进行这种转换吗?或者在silverlight客户端上显示bmp byte []的任何其他方式?

谢谢!

UPDATE1

为了实现转换,我会在.NET中做到这样的事情

private byte[]  ConvertBmpToJpeg(byte[] bmp)
{
    using (System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(bmp)))
    {
        MemoryStream ms = new MemoryStream();                
        image.Save(ms, ImageFormat.Jpeg);
        return ms.ToArray();
    }
 }

由于Silverlight中没有System.Drawing,我如何在Silverlight中实现上面的代码?

答案 使用下面dj kraze提到的图书馆 -

        ExtendedImage img = new ExtendedImage();
        var bd = new BmpDecoder();
        var je = new JpegEncoder();
        bd.Decode(img, new MemoryStream(bitmapBytes));
        MemoryStream ms = new MemoryStream();
        je.Encode(img, ms);

        BitmapImage bi = new BitmapImage();
        bi.SetSource(new MemoryStream(ms.ToArray()));
        display_ScreenShot.Source = bi;

1 个答案:

答案 0 :(得分:1)

这是一种更简单的方法。 这个网站可能有很多帮助

Image Converting