내용 보기

작성자

관리자 (IP : 172.17.0.1)

날짜

2020-07-10 04:46

제목

[C#] 실제 이미지 포맷 알아내기


/// <summary>
/// 실제 이미지 포맷을 반환한다.
/// </summary>
/// <param name="pPath"></param>
/// <returns></returns>
static public string GetImageFormat(string pPath)
{
    string tFormat = "jpg";
 
    if (File.Exists(pPath))
    {
        FileStream FS = new FileStream(pPath, FileMode.Open);
        System.Drawing.Image theImage = null;
        theImage = System.Drawing.Image.FromStream(FS);  // 이 부분은 웹일 경우 다음과 같이 처리한다.
 
 
 
        // 웹일경우
        //theImage = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);
 
 
 
 
 
        if (theImage.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
        {
            tFormat = "jpg";
        }
        else if (theImage.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))
        {
            tFormat = "gif";
        }
        else if (theImage.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))
        {
            tFormat = "bmp";
        }
        else if (theImage.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
        {
            tFormat = "png";
        }
        else  // TODO : 이 외 포맷은 무조건 jpg로
        {
            tFormat = "jpg";
        }
 
        theImage.Dispose();
        FS.Close();
        FS.Dispose();
    }
    else
    {
        return null;
    }
 
    return tFormat;
}
cs

참고

이미지 포맷형식을 배열로 정의해 놓고 loop로 체크해도 된다.

System.Drawing.Imaging.ImageFormat[] SupportedImageFormats = {
         System.Drawing.Imaging.ImageFormat.Bmp,     
         System.Drawing.Imaging.ImageFormat.Gif,     
         System.Drawing.Imaging.ImageFormat.Png,
         System.Drawing.Imaging.ImageFormat.Tiff,
         System.Drawing.Imaging.ImageFormat.Jpeg     
};
cs

출처1

출처2