Come si assegna un oggetto in memoria Bitmap
a un controllo Image
in WPF?Utilizzo del controllo immagine in WPF per visualizzare System.Drawing.Bitmap
risposta
È possibile utilizzare la proprietà Origine dell'immagine. Prova questo codice ...
ImageSource imageSource = new BitmapImage(new Uri("C:\\FileName.gif"));
image1.Source = imageSource;
Ha già la bitmap in memoria, quindi non può usare un uri –
Ho un oggetto Bitmap, actully è generato da un dispositivo di scansione, quindi non posso riferire a nessuna posizione –
ho un metodo che restituisce l'immagine bitmap .. come impostarlo come sorgente –
Secondo http://khason.net/blog/how-to-use-systemdrawingbitmap-hbitmap-in-wpf/
[DllImport("gdi32")]
static extern int DeleteObject(IntPtr o);
public static BitmapSource loadBitmap(System.Drawing.Bitmap source)
{
IntPtr ip = source.GetHbitmap();
BitmapSource bs = null;
try
{
bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip,
IntPtr.Zero, Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
}
finally
{
DeleteObject(ip);
}
return bs;
}
Ottiene System.Drawing.Bitmap (da WindowsBased) e lo converte in BitmapSource, che può essere effettivamente utilizzata come fonte di immagine per il controllo Image in WPF.
image1.Source = YourUtilClass.loadBitmap(SomeBitmap);
Thx Lars, ma l'ho fatto molto più semplice, BitmapImage bmpi = new BitmapImage(); bmpi.BeginInit(); bmpi.StreamSource = new MemoryStream (ByteArray); bmpi.EndInit(); image1.Source = bmpi; –
Grande. Puoi aggiungere la tua sollution come risposta alla tua stessa domanda. –
Non vedo un metodo BitmapImage.StreamSource. Prashant, hai scritto qualcosa di sbagliato? –
È facile per il file su disco, ma più difficile per Bitmap in memoria.
System.Drawing.Bitmap bmp;
Image image;
...
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
ms.Position = 0;
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = ms;
bi.EndInit();
image.Source = bi;
Thx, ma il codice non ha chiuso il ms.I penso che userete http://stackoverflow.com/a/1069509/6116637 – lindexi
@lindexi Anche se 'MemoryStream' implementa' IDisposable', non richiede di essere eliminato in modo esplicito in quanto non avvolge alcuna risorsa non gestita. È come un array di byte e alla fine verrà raccolto da GC. – kennyzx
ho scritto un programma con wpf
e utilizzati database per mostrare le immagini e questo è il mio codice:
SqlConnection con = new SqlConnection(@"Data Source=HITMAN-PC\MYSQL;
Initial Catalog=Payam;
Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select * from news", con);
DataTable dt = new DataTable();
da.Fill(dt);
string adress = dt.Rows[i]["ImgLink"].ToString();
ImageSource imgsr = new BitmapImage(new Uri(adress));
PnlImg.Source = imgsr;
Buona risposta, ma consiglio vivamente di includere gli oggetti Sql nell'utilizzo delle istruzioni, in modo che siano disposte quando hai finito di usarle. –
- 1. Alternativa a System.Drawing.Bitmap in Silverlight che è compatibile con WPF
- 2. Utilizzo di bitmap in WPF
- 3. Controllo immagine WPF con evento Click
- 4. Fare clic su Evento per immagine WPF
- 5. Visualizzare le proprietà dell'oggetto in un controllo WPF
- 6. Immagine WPF, modifica del colore dei pixel
- 7. Converti System.Windows.Media.ImageSource in System.Drawing.Bitmap
- 8. Gestione degli eventi del controllo utente WPF
- 9. Ridimensiona immagine in WPF
- 10. Utilizzo del Dispatcher WPF in unit test
- 11. TextBlock per visualizzare HTML in WPF
- 12. Scorri immagine WPF per cambiare immagine come in iOS
- 13. Da WPF di controllo per Silverlight Controllo
- 14. WPF - Associare la proprietà dell'immagine a Controllo immagine
- 15. Utilizzo del TouchScreens per il controllo del gioco
- 16. risorse immagine WPF e modifica dell'immagine nel controllo wpf in fase di esecuzione
- 17. Disegnare un nuovo System.Drawing.Bitmap
- 18. Trova controllo WPF per nome
- 19. Elementi selezionabili Elemento di controllo in WPF
- 20. WebBrowser WPF (3.5 SP1) Sempre in primo piano - altro suggerimento per visualizzare HTML in WPF
- 21. Levigatura bordi immagine in WPF
- 22. Controllo Esplora risorse per WPF?
- 23. Invia immagine dal controller per visualizzare in MVC3
- 24. Ricerca del controllo all'interno di WPF itemscontrol
- 25. Posizione del controllo WPF nella finestra?
- 26. DataContext del controllo utente WPF è Null
- 27. Svantaggi per l'hosting del controllo Windows Form nell'applicazione WPF?
- 28. Esempio di utilizzo del collegamento ipertestuale in WPF
- 29. Immagine di sfondo del pulsante non visualizzata in WPF
- 30. Pulsante WPF con immagine
duplicato esatto del http://stackoverflow.com/questions/94456/load-a-wpf-bitmapimage-da-a-system-drawing-bitmap ma la mia risposta non ha perso HBitmap –