0
私はbyte []でbmpを返すwcfサービスを持っています。しかし、SilverlightのImageコントロールはbmpの表示をサポートしていないので、bmp byte []をpngまたはjpg byte []に変換する必要があります。この変換を行うライブラリはありますか?または、silverlightクライアントにbmp byte []を表示する他の方法はありますか?Silverlight 4:bmpバイト配列をpngバイト配列に変換するにはどうすればよいですか?
ありがとうございます!
アップデート1
System.Drawingがどのように私は何を達成しない、Silverlightで使用できないので、私は.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で動作しますか? 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;
これを試してみると、BMPバイトストリームをImageにデコードして、Pngバイトストリームへのイメージをこのライブラリでエンコードすることができると思います。すぐに更新されます! – OceanDrift
私はライブラリを使って変換を得ることができました – OceanDrift