У меня есть изображения, сделанные из мобильного приложения, которое мне нужно преобразовать в BitmapImage
. Все сделанные снимки преобразуются в byte[]
и хранятся в SQL Server.Невозможно преобразовать байт [] в BitmapImage
Затем я хочу получить это изображение и отобразить его в элементе управления Image
в WPF. Вот мое преобразование из байта [] в BitmapImage:
private static BitmapImage LoadImage(byte[] imageData)
{
if (imageData == null || imageData.Length == 0) return null;
var image = new BitmapImage();
using (var mem = new MemoryStream(imageData))
{
mem.Position = 0;
image.BeginInit();
image.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
image.CacheOption = BitmapCacheOption.OnLoad;
image.UriSource = null;
image.StreamSource = mem;
image.EndInit(); //Error exception here.
}
image.Freeze();
return image;
}
Я получаю сообщение об ошибке на EndInit()
линии, как показано выше.
Никакой компонент изображения, подходящий для завершения этой операции, не найден.
я вызываю метод LoadImage()
и так:
MyCollection.Add(new ImageItems
{
Id = image.Id,
ImageData = LoadImage(image.TruckImg),
DateTaken = image.DateTaken
});
Дело в том, что я знаю, что байты [] image.TruckImg
содержит действительное изображение, потому что, когда я придаю, что точно такое же изображение на электронную почту, изображение отображается в Gmail правильно.
электронной почты код Привязанность:
MemoryStream memoryStream = new MemoryStream(image.TruckImg);
mail.Attachments.Add(new Attachment(memoryStream, filename, MediaTypeNames.Image.Jpeg));
Может кто-нибудь сказать мне, как исправить мою ошибку выше? Нужно ли устанавливать определенные заголовки для работы BitmapImage? Если да, то как этот точный байт [] image.TruckImg
будет отображаться в Gmail правильно, когда я получу почтовое изображение ...
Заранее спасибо! :)
Сообщение об ошибке «Отсутствует компонент обработки изображений, подходящий для завершения этой операции» - это четкое указание на то, что массив байтов не кодирует действительный буфер кодированного изображения, то есть JPEG, PNG и т. Д. – Clemens
Спасибо за комментарий , Я не понимаю, что я могу отправить этот тот же самый байт [] в качестве приложения электронной почты для себя, и он корректно отображает изображение .jpg в моем браузере? – CareTaker22
Да, он добавлен в мой код конверсии выше: 'image.CreateOptions = BitmapCreateOptions.PreservePixelFormat;' – CareTaker22