如何将图标(位图)转换为ImageSource?

古拉布·优素福·巴希尔

我的wpf应用程序中有一个按钮和一个名为image1的图像。我想从位置或文件路径的文件图标添加image1的图像源。这是我的代码:

using System.Windows;
using System.Windows.Media.Imaging;
using System.IO;
using System.Drawing;

namespace WpfApplication2
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Icon ico = System.Drawing.Icon.ExtractAssociatedIcon(@"C:\WINDOWS\system32\notepad.exe");
            image1.Source = ico.ToBitmap();
        }
    }
}

错误是说

无法将类型'System.Drawing.Bitmap'隐式转换为'System.Windows.Media.ImageSource'

如何解决这个问题呢?

托马斯·列夫斯克

Farhan Anam提出的解决方案可以使用,但是并不理想:图标是从文件加载,转换为位图,保存到流并从流中重新加载的。那是相当低效的。

另一种方法是使用System.Windows.Interop.Imaging类及其CreateBitmapSourceFromHIcon方法:

private ImageSource IconToImageSource(System.Drawing.Icon icon)
{
    return Imaging.CreateBitmapSourceFromHIcon(
        icon.Handle,
        new Int32Rect(0, 0, icon.Width, icon.Height),
        BitmapSizeOptions.FromEmptyOptions());
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    using (var ico = System.Drawing.Icon.ExtractAssociatedIcon(@"C:\WINDOWS\system32\notepad.exe"))
    {
        image1.Source = IconToImageSource(ico);
    }
}

请注意using转换后的原始图标放置块。不这样做会导致手柄泄漏。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将图像转换为 ImageSource

来自分类Dev

如何将ImageSource转换为Byte数组?

来自分类Dev

将位图转换为ImageSource使我的图像背景变黑

来自分类Dev

如何将位图图像转换为mat图像

来自分类Dev

如何将matplotlib路径对象转换为位图?

来自分类Dev

如何将Leptonica Pix对象转换为Android的位图

来自分类Dev

如何将位图图像转换为Emgu图像?

来自分类Dev

如何将位图转换为内存流?

来自分类Dev

Android:如何将位图数组转换为Int数组?

来自分类Dev

如何将System.Byte []转换为位图?

来自分类Dev

Flutter-如何将SVG文件转换为位图

来自分类Dev

如何将劣质位图图像转换为矢量?

来自分类Dev

如何将Drawable转换为缩放的位图

来自分类Dev

如何将位图图像转换为Mat图像

来自分类Dev

android,如何将位图转换为文件对象

来自分类Dev

裁剪后如何将图像转换为位图?

来自分类Dev

如何将菜单图标转换为箭头图标?

来自分类Dev

如何将指向硬盘驱动器(而非资产)的Uri转换为ImageSource?

来自分类Dev

WPF-如何将XAML图标放在ImageSource中?

来自分类Dev

WPF-如何将XAML图标放在ImageSource中?

来自分类Dev

如何将URL转换为位图,将其存储在缓存中并在Listview中显示?

来自分类Dev

如何将byte []或位图转换为整数(R.drawable.picture)Android Java

来自分类Dev

如何将字节数组转换为位图图像?

来自分类Dev

如何将位图图像转换为.pcx格式以在Zebra打印机中打印图像

来自分类Dev

如何将WPF VB.NET的位图转换为BitmapImage

来自分类Dev

如何将TIFF图像文件转换为Android位图

来自分类Dev

如何将24位JPEG图像转换为8位图像?

来自分类Dev

如何将图像、Pdf、Docx 和 Doc 文件转换为位图

来自分类Dev

如何将位图或字节数组转换为图像?

Related 相关文章

  1. 1

    如何将图像转换为 ImageSource

  2. 2

    如何将ImageSource转换为Byte数组?

  3. 3

    将位图转换为ImageSource使我的图像背景变黑

  4. 4

    如何将位图图像转换为mat图像

  5. 5

    如何将matplotlib路径对象转换为位图?

  6. 6

    如何将Leptonica Pix对象转换为Android的位图

  7. 7

    如何将位图图像转换为Emgu图像?

  8. 8

    如何将位图转换为内存流?

  9. 9

    Android:如何将位图数组转换为Int数组?

  10. 10

    如何将System.Byte []转换为位图?

  11. 11

    Flutter-如何将SVG文件转换为位图

  12. 12

    如何将劣质位图图像转换为矢量?

  13. 13

    如何将Drawable转换为缩放的位图

  14. 14

    如何将位图图像转换为Mat图像

  15. 15

    android,如何将位图转换为文件对象

  16. 16

    裁剪后如何将图像转换为位图?

  17. 17

    如何将菜单图标转换为箭头图标?

  18. 18

    如何将指向硬盘驱动器(而非资产)的Uri转换为ImageSource?

  19. 19

    WPF-如何将XAML图标放在ImageSource中?

  20. 20

    WPF-如何将XAML图标放在ImageSource中?

  21. 21

    如何将URL转换为位图,将其存储在缓存中并在Listview中显示?

  22. 22

    如何将byte []或位图转换为整数(R.drawable.picture)Android Java

  23. 23

    如何将字节数组转换为位图图像?

  24. 24

    如何将位图图像转换为.pcx格式以在Zebra打印机中打印图像

  25. 25

    如何将WPF VB.NET的位图转换为BitmapImage

  26. 26

    如何将TIFF图像文件转换为Android位图

  27. 27

    如何将24位JPEG图像转换为8位图像?

  28. 28

    如何将图像、Pdf、Docx 和 Doc 文件转换为位图

  29. 29

    如何将位图或字节数组转换为图像?

热门标签

归档