使用 System.Drawing.Image.Save(string path, ImageFormat format) 方法,透過 ImageFormat 靜態屬性指定目標格式即可完成轉換。
private void btnConvert_Click(object sender, EventArgs e)
{
if (MyBitmap == null)
{
MessageBox.Show("請先選擇圖片!", "提示");
return;
}
using (var saveDlg = new SaveFileDialog())
{
if (saveDlg.ShowDialog() != DialogResult.OK) return;
string fileName = saveDlg.FileName;
try
{
switch (cboFormat.SelectedIndex)
{
case 0: MyBitmap.Save(fileName + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp); break;
case 1: MyBitmap.Save(fileName + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); break;
case 2: MyBitmap.Save(fileName + ".png", System.Drawing.Imaging.ImageFormat.Png); break;
case 3: MyBitmap.Save(fileName + ".gif", System.Drawing.Imaging.ImageFormat.Gif); break;
case 4: MyBitmap.Save(fileName + ".tif", System.Drawing.Imaging.ImageFormat.Tiff); break;
case 5: MyBitmap.Save(fileName + ".wmf", System.Drawing.Imaging.ImageFormat.Wmf); break;
}
MessageBox.Show("轉換完成!");
}
catch (Exception ex)
{
MessageBox.Show($"轉換失敗:{ex.Message}", "錯誤");
}
}
}
| 索引 | 副檔名 | ImageFormat 屬性 | 特性 |
|---|---|---|---|
| 0 | .bmp | ImageFormat.Bmp | 無損、無壓縮、檔案大 |
| 1 | .jpg | ImageFormat.Jpeg | 有損壓縮、適合照片、支援品質參數 |
| 2 | .png | ImageFormat.Png | 無損壓縮、支援透明通道、網頁首選 |
| 3 | .gif | ImageFormat.Gif | 256 色、支援動畫、簡單圖示適用 |
| 4 | .tif | ImageFormat.Tiff | 專業印刷、多頁、無損/有損皆支援 |
| 5 | .wmf | ImageFormat.Wmf | Windows 向量圖元檔、可縮放 |
using System.Drawing.Imaging;
var encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = new EncoderParameter(Encoder.Quality, 85L); // 0-100
var jpegCodec = ImageCodecInfo.GetImageEncoders()
.First(c => c.FormatID == ImageFormat.Jpeg.Guid);
MyBitmap.Save(fileName + ".jpg", jpegCodec, encoderParams);
System.Drawing.Common 僅支援 Windows,Linux/macOS 建議改用 ImageSharp 或 SkiaSharp。Bitmap 實作 IDisposable,用完記得 Dispose() 或 using 區塊。