软件编程
位置:首页>> 软件编程>> C#编程>> C# 图片格式转换的实例代码

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

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

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

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

涉及知识点

  • 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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com