ValueConverter
에서 System.Data.Linq.Binary
(SQL CE 이미지)을 BitmapImage
으로 변환하려고했습니다. 이 방법은 (이미지 쇼 형태에 제대로입니다) 작동 :왜 SQL CE에서 WPF 이미지로 이미지를로드하는 두 가지 방법으로 다른 결과가 나옵니까?
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture) {
Binary binary = value as Binary;
if (binary != null) {
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = new MemoryStream(binary.ToArray());
bitmap.EndInit();
return bitmap;
}
return null;
}
이 방법을 수행 하지 일 (그러나 예외는, 이상하게도 발생하지 않습니다) :
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture) {
Binary binary = value as Binary;
if (binary != null) {
using (var stream = new MemoryStream(binary.ToArray())) {
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = stream;
bitmap.EndInit();
return bitmap;
}
}
return null;
}
좋은 프로그래밍 연습 상태를 당신 내가 만든 모든 스트림을 처리해야합니다 ... 그래서 두 번째 방법이 작동하지 않는 이유는 혼란 스럽지만 첫 번째 방법은 혼란 스럽습니다. 어떤 통찰력?
여기 간단한 샘플 코드가 있습니다. http://erikej.blogspot.com/2009/11/how-to-save-and-retrieve-images-using.html – ErikEJ
바이트 []에서 이미지 'Image.FromStream (ms);을 사용합니다. 이것은 Windows Forms에만 해당됩니다 (저는 WPF를 사용하고 있습니다). 'System.Windows.Media.Imaging.BitmapImage'와'System.Windows.Controls.Image'를 체크했는데 둘 다'FromStream' 메서드를 가지고 있지 않았습니다. 링크를 가져 주셔서 감사합니다. – Pwninstein