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 |
指定不旋转,后面接续垂直翻转。 |