Silverlight 4: Как преобразовать байтовый массив bmp в байтовый массив png? - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть служба wcf, которая возвращает bmp в байтах [].Однако элемент управления изображения Silverlight не поддерживает отображение bmp, поэтому мне нужно преобразовать bmp byte [] в png или jpg byte [].Есть ли библиотека, которая делает это преобразование?Или каким-либо другим способом отображения байта bmp [] на клиенте silverlight?

Спасибо!

Update1

Чтобы выполнить преобразование Iсделал бы что-то подобное в .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();
    }
 }

Поскольку System.Drawing недоступен в Silverlight, как мне добиться того, что код делает выше в 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 Ответ

1 голос
/ 10 февраля 2012

Вот еще более простой способ сделать это .. Этот сайт может очень помочь

Преобразование изображения

...