Silverlight 4中:我如何转换BMP字节数组PNG字节数组? [英] Silverlight 4: How can I convert bmp byte array to png byte array?

查看:121
本文介绍了Silverlight 4中:我如何转换BMP字节数组PNG字节数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有它返回的byte []一个bmp WCF服务。然而Silverlight中的Image控件犯规支持BMP显示的,所以我需要在BMP的byte []转换成PNG或JPG格式的byte []。是否有一个图书馆在那里它做到这一点的转换?或Silverlight客户端上显示BMP字节[]的任何其他方式?



谢谢!



UPDATE1



为了实现我会做这样的事情在.NET



转换

 专用字节[] ConvertBmpToJpeg(字节[] BMP)使用
{
(System.Drawing.Image对象图像= System.Drawing.Image.FromStream(新的MemoryStream (BMP)))
{
的MemoryStream毫秒=新的MemoryStream();
image.Save(MS,ImageFormat.Jpeg);
返回ms.ToArray();
}
}



由于System.Drawing中不可用在Silverlight,如何?我实现上面的代码确实在Silverlight是什么



是由DJ提到的库
低于KRAZE -

  ExtendedImage IMG =新ExtendedImage(); 
变种BD =新BmpDecoder();
无功济=新JpegEncoder();
bd.Decode(IMG,新的MemoryStream(bitmapBytes));
的MemoryStream毫秒=新的MemoryStream();
je.Encode(IMG,MS);

BitmapImage的双向=新的BitmapImage();
bi.SetSource(新的MemoryStream(ms.ToArray()));
display_ScreenShot.Source =双向;


解决方案

下面是做的更简单的方法..
这个网站可以帮助了很多



图像转换


I have a wcf service which returns a bmp in byte[]. However Silverlight's Image control doesnt support displaying bmp's so i need to convert the bmp byte[] to png or jpg byte[]. Is there a library out there which does this conversion? Or any other way of displaying the bmp byte[] on the silverlight client?

Thanks!

Update1

In order to achieve the conversion I would have done something like this in .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();
    }
 }

Since System.Drawing is not available in Silverlight, how do I achieve what the code does above in Silverlight?

Answer using the library mentioned by dj kraze below-

        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;

解决方案

Here is an even easier way of doing it.. This site may help out a lot

Image Converting

这篇关于Silverlight 4中:我如何转换BMP字节数组PNG字节数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆