`

C# Convert BitmapFrame to Icon and Vice Versa

    博客分类:
  • WPF
wpf 
阅读更多

In the transition from Winform era to the Wpf era. Different type of image classes are used for icons, buttons images and etc....

 

The pre-world uses the Icon class (System.Drawing), while the newer wpf will uses ImageSource, more specifically, ImageSource's concrete derived classes such as BigmapFrame or BitmapImage (System.Windows.Media.Imaging);

 

 

Below shows the code that helps you to convert from BitmapFrame to Icon

 

 

 

private static Icon ConvertFromBitmapFrame(BitmapFrame bitmapFrame)
    {
      Debug.Assert(bitmapFrame != null);

      var ms = new MemoryStream();
      var encoder = new PngBitmapEncoder();
      encoder.Frames.Add(bitmapFrame);
      encoder.Save(ms);
      ms.Seek(0, SeekOrigin.Begin);
      var bmp = new Bitmap(ms);
      return Icon.FromHandle(bmp.GetHicon());
    }

 

 

the above code may have handle leakage as the bmp.GetHIcon will leak the the GDI handle to the wild.

 

and below shows code to convert from Icon to ImageSource. 

 

 

 

    private BitmapFrame ConvertFromIcon(Icon icon)
    {
      var memoryStream = new MemoryStream();
      icon.Save(memoryStream);
      memoryStream.Seek(0, SeekOrigin.Begin);
      return BitmapFrame.Create(memoryStream);
    }
 

 

 

分享到:
评论

相关推荐

    Icon格式图标

    this.Icon = BitmapFrame.Create(new Uri("pack://application:,,,/Resources/icon.ico")); ``` 4. **转换Icon与Bitmap**:Icon和Bitmap之间可以相互转换。例如,将Icon转换为Bitmap用于显示在PictureBox控件中:...

    C#XPS 转为图片并保存

    在IT领域,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序时。XPS(XML Paper Specification)是一种文档格式,类似于Adobe的PDF,用于呈现和打印高质量的文档。本篇文章将详细探讨如何使用C#将XPS文件转换...

    .net下的RGB图片转CMYK处理C#

    ### .NET 下的 RGB 图片转 CMYK 处理(C#) #### 知识点解析 在本文中,我们将深入探讨如何在.NET框架下使用C#编程语言实现从RGB色彩模式转换到CMYK色彩模式的过程。该转换通常用于准备图像以供打印,因为大多数...

    c#实现PDF文件播放

    BitmapFrame frame = BitmapFrame.Create(new MemoryStream(imageBytes), BitmapCreateOptions.None, BitmapCacheOption.OnLoad); ImageSource imageSource = frame; Image imageControl = new Image(); image...

    C# 图片转成byte存入,数据库读取byte转成图片的类

    在C#编程中,将图片转换为byte数组并存储到数据库,然后从数据库读取byte数组再还原为图片,是一种常见的处理方式。这种方式便于在不直接依赖文件系统的情况下管理和传输图像数据。以下是对这个主题的详细说明: 1....

    C# 图形叠加Overlay功能例程.rar

    在C#编程中,"图形叠加Overlay"是一个关键概念,主要应用于可视化应用程序,如游戏开发、数据可视化或GUI界面设计。Overlay技术允许开发者在现有的图像或视频上添加额外的元素,如文字、图像或者动态效果,以提供更...

    xps转pdf源码和C#参数调用

    encoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap)); encoder.Save(imageStream); imageStream.Seek(0, SeekOrigin.Begin); var image = PdfImage.FromStream(imageStream); pdfPage.ContentStream ...

    C#写的屏幕拷贝源代码

    在IT行业中,编程语言C#是一种广泛用于开发桌面应用、游戏、移动应用和Web应用的强大工具。本主题聚焦于一个特定的应用场景:使用C#进行屏幕拷贝,即将屏幕内容或部分屏幕区域捕获为图像。这个功能在很多场景下都...

    c#显示Gif动画.rar.rar

    标题中的“c#显示Gif动画”提示我们这个压缩包可能包含了如何在C#编程环境中显示GIF动画的教程或代码示例。虽然标签中提到了"Javascript",但根据标题,我们的主要焦点应放在C#上。我们将探讨C#中处理GIF动画的基本...

    C#\图片编辑器(加后缀.zip打开)

    在本文中,我们将深入探讨如何使用C#编程语言开发一个图片编辑器。C#是一种功能强大的面向对象的编程语言,广泛应用于Windows桌面应用开发,尤其是与.NET Framework或.NET Core结合时。图片编辑器是一个允许用户对...

    导出wpf图片_c#wpf_

    在C# WPF(Windows Presentation Foundation)开发中,有时我们需要将WPF应用程序中的视图或者控件导出为图片文件,以便于分享、保存或打印。这个任务可以通过编程实现,通常涉及以下几个关键知识点: 1. **绘图API...

    C#屏幕截图完整源码2019

    【C#屏幕截图技术详解】 在C#编程中,实现屏幕截图是一项常见的需求,无论是为了创建应用程序的桌面快照,还是进行游戏录制或是自动化测试。2019年的C#屏幕截图技术已经相当成熟,我们可以利用.NET Framework或.NET...

    wpf加载gif动态图片

    在C#中,我们可以使用`System.Windows.Media.Imaging.GifBitmapDecoder`类来解码GIF动画,并通过`System.Windows.Media.ImageSource`对象显示它。以下是使用WIC加载GIF动画的基本代码: ```csharp var ...

    C#实现调用本机摄像头实例

    在C#编程中,调用本机摄像头是一个常见的需求,特别是在开发涉及图像处理或视频流的应用时。本实例将向你展示如何利用C#、WPF(Windows Presentation Foundation)以及AForge.NET类库来实现这一功能。AForge.NET是一...

    读取数据库签名图片互转.zip

    在C#中,可以使用`Convert.ToBase64String`方法将`byte[]`(图像的二进制数据)转换为Base64字符串。 5. **Base64到Image的转换**: 反向过程是将Base64字符串解码回图像数据。`Convert.FromBase64String`方法可以...

    WPF Image Base64String 互转 Demo

    3. 将byte数组转换为Base64String:最后,我们使用Convert类的ToBase64String方法将byte数组转化为Base64String。 ```csharp string base64String = Convert.ToBase64String(imageBytes); ``` 逆向操作,将Base64...

    从图像WPF C#创建视频

    在本文中,我们将深入探讨如何使用C#和WPF(Windows Presentation Foundation)技术从一系列图像创建视频。这个项目提供了一种高效且用户友好的方法,将静态图片转换为动态视频,这对于多媒体应用、数据可视化或者...

    gif手机登录界面进度条

    在本案例中,我们关注的是如何在C#编程环境下实现这样一个功能。 C#是一种广泛应用于Windows桌面应用、服务器应用以及移动应用开发的面向对象的编程语言。在C#中,我们可以利用Windows Presentation Foundation ...

    WPF 修改图片颜色 1.2

    ImageSource source = BitmapFrame.Create(new Uri("path_to_your_image.jpg")); Image imageControl = new Image(); imageControl.Source = source; ``` 接下来,我们要用到的是WPF的WriteableBitmap类,它允许...

    LiveChart.wpf Chart图表保存Image图片

    接着,我们创建一个`BitmapEncoder`实例(如`PngBitmapEncoder`),将渲染后的位图转换为一个`BitmapFrame`,并将其添加到编码器的帧列表中。最后,我们将图像保存到文件系统。 4. 在XAML中,添加一个按钮或触发器...

Global site tag (gtag.js) - Google Analytics