Jak przypisać obiekt w pamięci Bitmap
do kontrolki Image
w WPF?Używanie formantu obrazu w WPF do wyświetlania System.Drawing.Bitmap
Odpowiedz
Możesz użyć właściwości Źródło obrazu. Wypróbuj ten kod ...
ImageSource imageSource = new BitmapImage(new Uri("C:\\FileName.gif"));
image1.Source = imageSource;
Ma już bitmapę w pamięci, więc nie może korzystać z URI –
Mam obiekt Bitmap, faktycznie jest on generowany z urządzenia skanującego, więc nie mogę odnieść się do żadnej lokalizacji –
Mam metodę, która zwraca obraz bitmapowy .. jak ustawić go jako źródło –
Według 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;
}
Robi System.Drawing.Bitmap (od WindowsBased) i zamienia go na BitmapSource, który w rzeczywistości może być wykorzystywane jako źródła obrazu do kontroli obrazu w WPF.
image1.Source = YourUtilClass.loadBitmap(SomeBitmap);
Thx Lars, ale zrobiłem znacznie prostsze, BitmapImage bmpi = new BitmapImage(); bmpi.BeginInit(); bmpi.StreamSource = new MemoryStream (ByteArray); bmpi.EndInit(); image1.Source = bmpi; –
Świetnie. Możesz dodać swoje rozwiązanie jako odpowiedź na własne pytanie. –
Nie widzę metody BitmapImage.StreamSource. Prashant, wpisałeś coś źle? –
Jest to łatwe dla pliku dysku, ale trudniejsze dla Bitmapy w pamięci.
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, ale kod nie zamknął ms.I think you will use http://stackoverflow.com/a/1069509/6116637 – lindexi
@lindexi Mimo że 'MemoryStream' implementuje' IDisposable', to nie wymaga jawnego udostępniania, ponieważ nie zawija żadnego niezarządzanego zasobu. To jest jak tablica bajtów i ostatecznie zostanie zebrane przez GC. – kennyzx
Napisałem program z wpf
i używany do wyświetlania obrazów bazy danych i jest to mój kod:
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;
Dobra odpowiedź, ale zdecydowanie zaleca się zawijanie obiektów Sql przy użyciu instrukcji, więc są one usuwane po zakończeniu ich używania. –
- 1. Używanie niestandardowego formantu WPF w WinForms
- 2. Używanie usługi Stream do wyświetlania obrazu * .ico
- 3. IO.Stream do obrazu w WPF
- 4. Alternatywa dla System.Drawing.Bitmap w Silverlight, która jest zgodna z WPF
- 5. Dodawanie paska postępu do tła formantu WPF
- 6. Używanie obrazu XAML jako tła okna WPF
- 7. Używanie formantu ReportViewer 9 w VS 2010
- 8. Jak uzyskać dostęp do formantu WPF znajdującego się w ControlTemplate?
- 9. Konwersja danych binarnych do formantu obrazu w ASP.NET
- 10. WPF obrazu/Event Rendering
- 11. Powiększenie obrazu WPF
- 12. Wtyczka Eclipse do wyświetlania obrazu podczas debugowania
- 13. Używanie Pylint do wyświetlania błędów i ostrzeżeń
- 14. Używanie "::" zamiast "modułu ..." do wyświetlania nazw Ruby
- 15. Jak zmienić widoczność formantu WPF z ViewModel
- 16. Rysunek nowy System.Drawing.Bitmap
- 17. Używanie plt.imshow() do wyświetlania wielu obrazów
- 18. Przeciąganie obrazu w WPF
- 19. Możliwe do InvalidateVisual() na danym regionie zamiast całego formantu WPF?
- 20. dodanie obrazu do etykiety w wpf?
- 21. Preferowany format obrazu do użycia w WPF?
- 22. Transformacja współrzędnych z kontrolą obrazu do źródła obrazu w WPF
- 23. Jak zmienić rozmiar formantu użytkownika w WPF w czasie wykonywania
- 24. Kliknij zdarzenie dla obrazu WPF
- 25. Uzyskiwanie obrazu tła do wyświetlania w pustym elemencie div
- 26. Jak do wyświetlania obrazu na linkButton wyglądać atrakcyjnie w ASP.NET
- 27. Jak skonfigurować narzędzie onClickListener do wyświetlania obrazu w widoku listy
- 28. Wygładzanie krawędzi obrazu w WPF
- 29. Używanie grafiki wektorowej XAML w aplikacji WPF
- 30. Określenie danych Kontekst formantu WPF w czasie projektowania
dokładną kopią http://stackoverflow.com/questions/94456/load-a-wpf-bitmapimage-from-a-system-drawing-bitmap, ale moja odpowiedź nie wycieka HBitmap –