我用image.FromFile()生成了image, 但无论原图形文件是JPEG还是Bitmap,生成的Image中的ImageType属性均为Bitmap.
Image的RawFormat属性不会用。请问用Image是否可以实现判断原始图形文件格式的功能,如何做呢?
如果Image无法实现这个功能,那又有什么其他的方法呢?谢谢
Image的RawFormat属性不会用。请问用Image是否可以实现判断原始图形文件格式的功能,如何做呢?
如果Image无法实现这个功能,那又有什么其他的方法呢?谢谢
////////////////////////////////////////////////////////////////////
if (postedFile.ContentType.ToString().ToLower().IndexOf("image") < 0)
{
strrow="格式无效";
continue;
} ====================================================
private System.Drawing.Imaging.ImageFormat GetImageType(object strContentType)
{
if ((strContentType.ToString().ToLower()) == "image/pjpeg")
{
return System.Drawing.Imaging.ImageFormat.Jpeg;
}
else if ((strContentType.ToString().ToLower()) == "image/gif")
{
return System.Drawing.Imaging.ImageFormat.Gif;
}
else if ((strContentType.ToString().ToLower()) == "image/bmp")
{
return System.Drawing.Imaging.ImageFormat.Bmp;
}
else if ((strContentType.ToString().ToLower()) == "image/tiff")
{
return System.Drawing.Imaging.ImageFormat.Tiff;
}
else if ((strContentType.ToString().ToLower()) == "image/x-icon")
{
return System.Drawing.Imaging.ImageFormat.Icon;
}
else if ((strContentType.ToString().ToLower()) == "image/x-png")
{
return System.Drawing.Imaging.ImageFormat.Png;
}
else if ((strContentType.ToString().ToLower()) == "image/x-emf")
{
return System.Drawing.Imaging.ImageFormat.Emf;
}
else if ((strContentType.ToString().ToLower()) == "image/x-exif")
{
return System.Drawing.Imaging.ImageFormat.Exif;
}
else if ((strContentType.ToString().ToLower()) == "image/x-wmf")
{
return System.Drawing.Imaging.ImageFormat.Wmf;
}
else
{
return System.Drawing.Imaging.ImageFormat.MemoryBmp;
}
}
====================================================================
关键一句:
upimage.Save(newpath,GetImageType(postedFile.ContentType));
原来想过RawFormat, 但一直不知道怎么用。现在知道了,
我原来用的是
if( image.RawFormat == System.Drawing.Image.ImageFormat.Jpeg )
{
....
}
总是不对。
刚刚试过
if( image.RawFormat.equals( System.Drawing.Image.ImageFormat.Jpeg ) )
{
..........
}
就可以了。