我有一个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;