C# 图片格式转换的实例代码

作者:Alan.hsiang 时间:2023-03-11 13:32:46 

在日常工作中,经常需要不同格式的图片,有时还需要进行图片格式的相互转换,本文以一个简单的小例子,简述图片格式转换的常见方法,仅供学习分享使用,如有不足之处,还请指正。

涉及知识点

  • OpenFileDialog 打开文件对话框,用于选择文件,可以设置过滤后缀。

  • FolderBrowserDialog 文件夹选择对话框,用于选择一个文件夹,可以新增。

  • ImageFormat 图片类型枚举。

  • Bitmap 位图对象,包含对应的属性和内容。

  • Stream 流对象的基类。

  • FlowLayoutPanel 流式布局容器,所添加的元素,以横向或纵向依次排列。

示例效果图

图片转换器的示例效果图如下:

C# 图片格式转换的实例代码

核心代码

打开图片


/// <summary>
   /// 打开图片
   /// </summary>
   /// <param name="sender"></param>
   /// <param name="e"></param>
   private void btnOpen_Click(object sender, EventArgs e)
   {

this.fileDialog.Filter = fileFilter;
     this.fileDialog.Multiselect = true;
     this.fileDialog.CheckFileExists = true;
     if (fileDialog.ShowDialog() == DialogResult.OK)
     {
       string[] fileNames = this.fileDialog.FileNames;
       foreach(string fileName in fileNames)
       {
         Bitmap bmp = new Bitmap(fileName);
         //保存图片名称
         bmp.Tag = Path.GetFileNameWithoutExtension(fileName);
         PictureBox box = new PictureBox();
         box.Image = bmp;
         box.Width = 105;
         box.Height = 150;
         box.BorderStyle = BorderStyle.FixedSingle;
         box.Padding = new Padding(2);
         this.flowPnl.Controls.Add(box);
       }
       this.txtFile.Text = Path.GetDirectoryName(fileNames[0]);

}
   }

转换图片格式


/// <summary>
   /// 转换图片
   /// </summary>
   private void convertImage(string dir, string filter,Bitmap bmp)
   {
     string filePath = Path.Combine(dir, string.Format("{0}.{1}", bmp.Tag.ToString(), filter.ToLower()));
     switch (filter)
     {
       case "JPG":
         bmp.Save(filePath, ImageFormat.Jpeg);
         break;
       case "PNG":
         bmp.Save(filePath, ImageFormat.Png);
         break;
       case "GIF":
         bmp.Save(filePath, ImageFormat.Gif);
         break;
       case "BMP":
         bmp.Save(filePath, ImageFormat.Bmp);
         break;
       case "ICO":
         Stream stream = File.Create(filePath);
         Icon icon = Icon.FromHandle(bmp.GetHicon());
         icon.Save(stream);    //  save the icon
         stream.Close();
         break;
     }
   }

如果需要示例的源码,可以点击链接进行下载

源码链接

来源:https://www.cnblogs.com/hsiang/archive/2020/08/01/13416132.html

标签:c#,图片,格式,转换
0
投稿

猜你喜欢

  • Android TV 3D卡片无限循环效果

    2022-03-26 04:06:48
  • Java 异步线程监听与结果回调及异常捕获总结分析

    2021-10-14 01:23:40
  • 详解springmvc控制登录用户session失效后跳转登录页面

    2021-12-08 19:36:40
  • Android的OkHttp包中的HTTP拦截器Interceptor用法示例

    2022-01-31 06:31:25
  • 关于Java8新特性Optional类的详细解读

    2023-12-06 00:38:53
  • SpringBoot 整合RabbitMq 自定义消息监听容器来实现消息批量处理

    2021-10-11 22:36:07
  • C# NullReferenceException解决案例讲解

    2023-01-24 07:38:10
  • Java CharacterEncodingFilter案例详解

    2022-03-21 18:22:32
  • 最最常用的 100 个 Java类分享

    2023-08-21 08:45:05
  • C#实现根据字节数截取字符串并加上省略号的方法

    2021-10-24 22:24:17
  • Android WebView 常见问题及处理方案

    2023-04-13 04:11:57
  • 实现Android studio设置自动导包及自动导包快捷键

    2022-03-22 00:05:26
  • Java基于IO流读取文件的方法

    2023-08-11 16:23:57
  • 详解Android版本适配:9.0 Pie

    2022-08-07 05:37:43
  • Centos6.5搭建java开发环境配置详解

    2021-09-27 06:22:03
  • C#字体池技术实现代码详解

    2022-12-30 06:18:02
  • Java毕业设计实战之教室预订管理系统的实现

    2023-03-03 20:38:11
  • Java精品项目瑞吉外卖之员工信息管理篇

    2023-07-29 07:43:36
  • Mybatis 开发注解快速入门

    2021-12-01 16:03:36
  • Java对世界不同时区timezone之间时间转换的处理方法

    2023-11-08 13:19:30
  • asp之家 软件编程 m.aspxhome.com