天天看點

C# 圖檔格式轉換

   C# 圖檔格式轉換

在日常工作中,經常需要不同格式(JPG,PNG,BMP,GIF,ICO)的圖檔,有時還需要進行圖檔格式的互相轉換,本文以一個簡單的小例子,簡述圖檔格式轉換的常見方法,僅供學習分享使用,如有不足之處,還請指正。

涉及知識點

  • OpenFileDialog 打開檔案對話框,用于選擇檔案,可以設定過濾字尾。
  • FolderBrowserDialog 檔案夾選擇對話框,用于選擇一個檔案夾,可以新增。
  • ImageFormat 圖檔類型枚舉。
  • Bitmap 位圖對象,包含對應的屬性和内容。
  • Stream 流對象的基類。
  • FlowLayoutPanel 流式布局容器,所添加的元素,以橫向或縱向依次排列。

示例效果圖

圖檔轉換器的示例效果圖如下:

C# 圖檔格式轉換

核心代碼

 打開圖檔

C# 圖檔格式轉換
C# 圖檔格式轉換
 1         ///  2         /// 打開圖檔 3         ///  4         ///  5         ///  6         private void btnOpen_Click(object sender, EventArgs e) 7         { 8  9             this.fileDialog.Filter = fileFilter;10             this.fileDialog.Multiselect = true;11             this.fileDialog.CheckFileExists = true;12             if (fileDialog.ShowDialog() == DialogResult.OK)13             {14                 string[] fileNames = this.fileDialog.FileNames;15                 foreach(string fileName in fileNames)16                 {17                     Bitmap bmp = new Bitmap(fileName);18                     //儲存圖檔名稱19                     bmp.Tag = Path.GetFileNameWithoutExtension(fileName);20                     PictureBox box = new PictureBox();21                     box.Image = bmp;22                     box.Width = 105;23                     box.Height = 150;24                     box.BorderStyle = BorderStyle.FixedSingle;25                     box.Padding = new Padding(2);26                     this.flowPnl.Controls.Add(box);27                 }28                 this.txtFile.Text = Path.GetDirectoryName(fileNames[0]);29 30             }31         }      

View Code

轉換圖檔格式

 1         ///  2         /// 轉換圖檔 3         ///  4         private void convertImage(string dir, string filter,Bitmap bmp) 5         { 6             string filePath = Path.Combine(dir, string.Format("{0}.{1}", bmp.Tag.ToString(), filter.ToLower())); 7             switch (filter) 8             { 9                 case "JPG":10                     bmp.Save(filePath, ImageFormat.Jpeg);11                     break;12                 case "PNG":13                     bmp.Save(filePath, ImageFormat.Png);14                     break;15                 case "GIF":16                     bmp.Save(filePath, ImageFormat.Gif);17                     break;18                 case "BMP":19                     bmp.Save(filePath, ImageFormat.Bmp);20                     break;21                 case "ICO":22                     Stream stream = File.Create(filePath);23                     Icon icon = Icon.FromHandle(bmp.GetHicon());24                     icon.Save(stream);       //   save the icon25                     stream.Close();26                     break;27             }28         }      
c#