时间:2019-03-08 标签:c#wpfassignbitmap
c# wpf assign bitmap
我以前使用 WFA,但不,我也想尝试 WPF 平台。
我需要将现有位图分配给图像控件。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Bitmap sc = screenshot();
ima.Source = new Bitmap(sc);
}
这条线不起作用:ima.Source = new Bitmap(sc);
在图片框里我只能用这个
ima.Image = new Bitmap(sc);
但现在它抛出一个错误:
Cannot implicitly convert type 'System.Drawing.Bitmap' to 'System.Windows.Media.ImageSource'.
您还可以使用搜索功能:
Convert System.Drawing.Bitmap to BitmapImage
private BitmapImage BitmapToImageSource(System.Drawing.Bitmap bitmap)
{
Image i = new Image();
using (MemoryStream memory = new MemoryStream())
{
bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp);
memory.Position = 0;
BitmapImage bitmapimage = new BitmapImage();
bitmapimage.BeginInit();
bitmapimage.StreamSource = memory;
bitmapimage.CacheOption = BitmapCacheOption.OnLoad;
bitmapimage.EndInit();
i.Source = bitmapimage;
return bitmapimage;
}
}
这会将路径转换为 ImageSource。
<Image>
<Image.Source>
<BitmapImage UriSource="{Binding ImagePath}" />
</Image.Source>
</Image>
这样试试
public ImageSource imageSourceForImageControl
{
get
{
ImageSourceConverter c = new ImageSourceConverter();
return (ImageSource)c.ConvertFrom(yourBitmap);
}
}
https://msdn.microsoft.com/en-us/library/system.windows.media.imagesourceconverter(v=vs.110).aspx
我以前使用 WFA,但不,我也想尝试 WPF 平台。
我需要将现有位图分配给图像控件。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Bitmap sc = screenshot();
ima.Source = new Bitmap(sc);
}
这条线不起作用:ima.Source = new Bitmap(sc);
在图片框里我只能用这个
ima.Image = new Bitmap(sc);
但现在它抛出一个错误:
Cannot implicitly convert type 'System.Drawing.Bitmap' to 'System.Windows.Media.ImageSource'.
您还可以使用搜索功能: Convert System.Drawing.Bitmap to BitmapImage
private BitmapImage BitmapToImageSource(System.Drawing.Bitmap bitmap)
{
Image i = new Image();
using (MemoryStream memory = new MemoryStream())
{
bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp);
memory.Position = 0;
BitmapImage bitmapimage = new BitmapImage();
bitmapimage.BeginInit();
bitmapimage.StreamSource = memory;
bitmapimage.CacheOption = BitmapCacheOption.OnLoad;
bitmapimage.EndInit();
i.Source = bitmapimage;
return bitmapimage;
}
}
这会将路径转换为 ImageSource。
<Image>
<Image.Source>
<BitmapImage UriSource="{Binding ImagePath}" />
</Image.Source>
</Image>
这样试试
public ImageSource imageSourceForImageControl
{
get
{
ImageSourceConverter c = new ImageSourceConverter();
return (ImageSource)c.ConvertFrom(yourBitmap);
}
}
https://msdn.microsoft.com/en-us/library/system.windows.media.imagesourceconverter(v=vs.110).aspx