Я пытаюсь преобразовать массив байтов отпечатков пальцев в источник изображения в приложении WPF, но мои трюки не работают. Вот код:
byte[] fp_image; //fp_image contains the fingerprint byte array result
using (MemoryStream ms = new MemoryStream(fp_image))
{
Bitmap bmp = new Bitmap(ms);
FpImage.Source = ConvertToImageSource(bmp);
}
public static ImageSource ConvertToImageSource(Bitmap bitmap)
{
var imageSourceConverter = new ImageSourceConverter();
using (var memoryStream = new MemoryStream())
{
bitmap.Save(memoryStream, ImageFormat.Png);
var snapshotBytes = memoryStream.ToArray();
return (ImageSource)imageSourceConverter.ConvertFrom(snapshotBytes); ;
}
}
Примечание. Если я преобразую любое другое изображение в массив байтов и преобразую его обратно в изображение с помощью этого кода, он работает.
byte[] fp_image
содержит обязательные заголовки изображений? например, вы пытаетесь сохранить в png, но у него есть заголовок файла png? - person Hasan Emrah Süngü   schedule 29.07.2017fp_image
содержит допустимый кадр растрового изображения (закодированный, например, как PNG или JPEG), вы можете напрямую передать его конструктору MemoryStream и назначить этот поток свойствуStreamSource
объекта WPF BitmapImage. Еслиfp_image
является необработанным пиксельным буфером, вам необходимо знать формат пикселя, ширину и высоту растрового изображения и передать эти значения в одну из перегрузокBitmapSource.Create()
. - person Clemens   schedule 29.07.2017