Silverlight 4: преобразование изображения в байт [] - PullRequest
3 голосов
/ 18 марта 2011

Я нашел, как это сделать в .NET 4.0, но я думаю, что JpegBitmapEncoder не существует в Silverlight:

MemoryStream memStream = new MemoryStream();              
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(imageC));
encoder.Save(memStream);
var bytes = memStream.GetBuffer();

Как преобразовать изображение в байты [] в silverlight?

UPDATE:

У меня есть модель Contact, которая имеет свойство Photo. Всякий раз, когда я добавляю новый контакт, я хотел бы загрузить локальное изображение по умолчанию, преобразовать его и установить для него свойство Photo.

var bitmapImage = new BitmapImage
                            {
                                UriSource = new Uri("pack://application:,,,/xxx;component/Images/default.JPG")
                            };
            var image = new Image{Source = bitmapImage};

Это правильный способ загрузки изображения?

Ответы [ 2 ]

5 голосов
/ 18 марта 2011

Используйте

myImage.Save(memStream, ImageFormat.Jpeg);
return memStream.ToArray();

UPDATE

ОК, получается, что это изображение BitmapImage.

Похоже, что BitmapImage не предоставляет функциональность для сохранения изображения. Решение состоит в том, чтобы получить изображение из встроенного ресурса:

Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourcePath);
byte[] buffer = new byte[s.Length];
s.Read(buffer, 0, buffer.Length);
0 голосов
/ 18 марта 2011

Посмотрите на эту библиотеку: Imagetools

Она содержит несколько полезных утилит и кодировщиков jpg и png,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...