View Full Version : سوال: قرار دادن Bitmap در imageSource
kingtak
پنج شنبه 28 دی 1391, 11:53 صبح
من این تاپیکو چند لحظه پیش زدم ولی به دلیل مشکل اینترنتم دوبار ایجاد شد.از اون ور من و مدیر محترم همزمان هر دوتاشو حذف کردیم
خوب حالا مشکل:
چطوری باید bitmap رو توی کنترل image توی WPf نشون بدم؟توی winform که راحت این کار انجام میشه ولی وقتی توی wpf میخوام این کار رو انجام بدم ارور میده.میگه نمیتونم تبدیلش کنم.
کد من به این صورته:
ShellFile shellFile = ShellFile.FromFilePath(@"C:\Users\Hamid\Pictures\icons\calculator-icon.png");
image1.Source = shellFile.Thumbnail.MediumBitmap;
این هم خطا:
Cannot implicitly convert type 'System.Drawing.Bitmap' to 'System.Windows.Media.ImageSource'
Mahmoud.Afrad
پنج شنبه 28 دی 1391, 12:58 عصر
image1.Source = new BitmapImage(new Uri("filepath"));
kingtak
پنج شنبه 28 دی 1391, 18:50 عصر
image1.Source = new BitmapImage(new Uri("filepath"));
ممنون از توجهتون.
ولی این یه عکس معمولی نیست
اگه به کدم نگاه کنید برنامه یه عکس بند انگشتی از فایل میگیره و اونو میخوام نشون بدم.این فایل میتونه یه pdf یا هر چیزی باشه.
این لینکو ببینید! (http://barnamenevis.org/showthread.php?377590-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D8%B4%D8%AF%D9%87!!!!!)
Mahmoud.Afrad
پنج شنبه 28 دی 1391, 23:26 عصر
از این متد استفاده کنید:
private BitmapImage Bitmap_To_BitmapImage(System.Drawing.Bitmap bitmap)
{
using (System.IO.MemoryStream memory = new System.IO.MemoryStream())
{
bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Tiff);
BitmapImage bmpImage = new BitmapImage();
bmpImage.BeginInit();
bmpImage.StreamSource = memory;
bmpImage.CacheOption = BitmapCacheOption.OnLoad;
bmpImage.EndInit();
return bmpImage;
}
}
kingtak
جمعه 29 دی 1391, 10:06 صبح
مرسی دوست عزیز با اون کد هم نتونستم کار کنم.
یه راه حل دیگه پیدا کردم.میذارمش اینجا شاید به درد بقیه هم بخوره!!:قلب:
ShellFile shellFile = ShellFile.FromFilePath(@"D:\Programing\c#\CSharp_Mohebbian2 www.aghazeh.com.pdf");
Bitmap bt = shellFile.Thumbnail.MediumBitmap;
IntPtr hBitmap = bt.GetHbitmap();
image2.Source = System.Windows.Interop.Imaging.CreateBitmapSourceF romHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.