using System;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
/// <summary>
/// 图片旋转函数(经过高质量转换)
/// </summary>
/// <param name="Path"></param>
/// <param name="RotateType"></param>
public static void Rotate(string Path, RotateFlipType RotateType)
{
System.Drawing.Bitmap bitmap = (System.Drawing.Bitmap)System.Drawing.Image.FromFile(Path);
bitmap.RotateFlip(RotateType);
try
{
//处理JPG质量的函数
System.Drawing.Imaging.ImageCodecInfo ici = GetEncoderInfo("image/jpeg");
System.Drawing.Imaging.Encoder myEncoder;//这个是重点类,
System.Drawing.Imaging.EncoderParameter myEncoderParameter;
System.Drawing.Imaging.EncoderParameters myEncoderParameters;
myEncoder = System.Drawing.Imaging.Encoder.Quality;
myEncoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
// 在这里设置图片的质量等级为95L.
myEncoderParameter = new System.Drawing.Imaging.EncoderParameter(myEncoder, 92L);
myEncoderParameters.Param[0] = myEncoderParameter;//将构建出来的EncoderParameter类赋给EncoderParameters数组
//以jpg格式保存缩略图
bitmap.Save(Path, ici, myEncoderParameters);
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
bitmap.Dispose();
bitmap = null;
}
}
RotateFlipType 列举型别
成员名称 | 说明 |
Rotate180FlipNone | 指定不翻转的 180 度旋转。 |
Rotate180FlipX | 指定 180 度旋转,后面接续水平翻转。 |
Rotate180FlipXY | 指定 180 度旋转,后面接续水平和垂直翻转。 |
Rotate180FlipY | 指定 180 度旋转,后面接续垂直翻转。 |
Rotate270FlipNone | 指定不翻转的 270 度旋转。 |
Rotate270FlipX | 指定 270 度旋转,后面接续水平翻转。 |
Rotate270FlipXY | 指定 270 度旋转,后面接续水平和垂直翻转。 |
Rotate270FlipY | 指定 270 度旋转,后面接续垂直翻转。 |
Rotate90FlipNone | 指定不翻转的 90 度旋转。 |
Rotate90FlipX | 指定 90 度旋转,后面接续水平翻转。 |
Rotate90FlipXY | 指定 90 度旋转,后面接续水平和垂直翻转。 |
Rotate90FlipY | 指定 90 度旋转,后面接续垂直翻转。 |
RotateNoneFlipNone | 指定不旋转和不翻转。 |
RotateNoneFlipX | 指定不旋转,后面接续水平翻转。 |
RotateNoneFlipXY | 指定不旋转,后面接续水平和垂直翻转。 |
RotateNoneFlipY | 指定不旋转,后面接续垂直翻转。 |