Der beste Weg Bild in WPF anzuzeigen
-
05-07-2019 - |
Frage
Zur Zeit arbeite ich an einem Ultraschall-Scan-Projekt, das die Bilder von einer Sonde aquired weiter zeigt, zu tun, dass ich folgenden Code mich schreibe.
XAML:
<Image Name="imgScan" DataContext="{Binding}" Source="{Binding Path=prescanImage,Converter={StaticResource imgConverter}}" />
C # Zuordnung:
Bitmap myImage = GetMeImage();
imageMem = new MemoryStream();
myImage .Save(imageMem, ImageFormat.Png);
imgScan.DataContext = new { prescanImage = imageMem.ToArray() };
Converter:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null && value is byte[])
{
byte[] ByteArray = value as byte[];
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.StreamSource = new MemoryStream(ByteArray);
bmp.EndInit();
return bmp;
}
return null;
}
Diese Methode kostet mich viel (Performance), Gibt es einen besseren Weg, es ??
zu tunLösung
Da Sie bereits die DataContext
in Code-Einstellung (nicht XAML), warum nicht nur ein paar Schritte überspringen?
Bitmap myImage = GetMeImage();
imageMem = new MemoryStream();
myImage.Save(imageMem, ImageFormat.Png);
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.StreamSource = new MemoryStream(imageMem.ToArray());
bmp.EndInit();
imgScan.Source = bmp;
Wenn Sie Zugriff auf GetMeImage()
haben, sollten Sie es prüfen, zu ändern in Ihre Anwendung besser passen? - Ist es wirklich eine Bitmap
zurückkehren müssen
Auch, wie oft Ihr erstes Stück Code ausgeführt wird? Vielleicht möchten Sie, dass zu prüfen, zu ändern oder zu erlauben, es zu ändern, wenn es muss.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow