2012-02-10 2 views
0

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

Спасибо!

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(); 
    } 
} 

Поскольку System.Drawing не доступен в Silverlight, как я могу добиться того, что код выше в Silverlight?

Ответ с использованием библиотеки упоминаемый диджей 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

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

Image Converting

+0

Пробуя это, я думаю, что декодирование BMP-потока байтов в изображение, а затем кодирование потока байтов изображения в Png может быть выполнено с помощью этой библиотеки. Скоро будет обновление! – OceanDrift

+0

Мне удалось получить преобразование, используя библиотеку – OceanDrift

Смежные вопросы