自訂搜尋

2010/11/16

C# 轉換圖片格式

雖然市面上已經很多轉圖片格式的軟體了=口=

但是有時候~自己寫還是會比較貼近自己的需求=口=

不過大部分的時候還是ACDSee萬歲=口=


Image.Save 方法 (String, ImageFormat)


將這個影像以指定的格式儲存至指定的檔案。

參數


filename
字串,包含要儲存這個 Image 之目的檔案的名稱。
format
這個 Image 的 ImageFormat


//path是圖片的路徑
Image img = Image.FromFile(path);

//存成GIF
img.Save(SavePath + Filename + ".gif", System.Drawing.Imaging.ImageFormat.Gif);

//存成BMP
img.Save(SavePath + Filename + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);

//存成PNG
img.Save(SavePath + Filename + ".png", System.Drawing.Imaging.ImageFormat.Png);

//存成ICON
img.Save(SavePath + Filename + ".ico", System.Drawing.Imaging.ImageFormat.Icon);

//存成JPEG
img.Save(SavePath + Filename + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

然後因為Jpeg檔還可以壓縮品質~~
痾~其實可能每種格式都可以壓縮吧....
只是我只會JPEG的=口=
夭壽orz...

/// 
/// 儲存圖片(JPG)
/// 
/// 要儲存的圖片
/// 品質(0~100)
/// 儲存路徑
private void SaveAsJPEG(Image img, int qulity, string path)
{
            EncoderParameters myEncoderParameters = new EncoderParameters(1);
            EncoderParameter myEncoderParameter = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qulity);
            myEncoderParameters.Param[0] = myEncoderParameter;

            img.Save(path, GetEncoder(ImageFormat.Jpeg), myEncoderParameters);
}

/// 
/// 取得已安裝的影像 Codec 的相關資訊
/// 
/// System.Drawing.Imaging.ImageFormat
/// System.Drawing.Imaging.ImageCodeInfo
private ImageCodecInfo GetEncoder(ImageFormat format)
{
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();

            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
}

收工~買菜!

沒有留言:

張貼留言

讀取中…