Использование управления изображением в WPF для отображения системы.Рисунок.Растровый
Как мне назначить in-memory Bitmap
объект Image
управление в WPF ?
4 ответа:
вы можете использовать исходное свойство изображения. Попробуйте этот код...
ImageSource imageSource = new BitmapImage(new Uri("C:\FileName.gif")); image1.Source = imageSource;
согласно 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; }
он получает систему.Рисунок.Растровое изображение (из WindowsBased) и преобразует его в BitmapSource, который фактически может использоваться в качестве источника изображения для вашего элемента управления изображением в WPF.
image1.Source = YourUtilClass.loadBitmap(SomeBitmap);
это легко для дискового файла, но сложнее для растрового изображения в памяти.
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;
Я написал программу с
wpf
и используется база данных для отображения изображений, и это мой код: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;