c# 调整压缩照片的分辨率

c# 调整压缩照片的分辨率
///
/// 图像转换
///
public class Conversion
{
///
/// 压缩调整图片分辨率
///
/// 旧文件地址
/// 新文件地址
/// 图片宽度最大限制
/// 图片高度最大限制
///
public static bool Compress_Pictures(string OldFilePath, string NewFilePath, int maxWidth = 800, int maxHeight = 5000)
{
bool result = false;//是否有执行压缩

System.Drawing.Image imgPhoto = System.Drawing.Image.FromFile(OldFilePath);
int imgWidth = imgPhoto.Width;
int imgHeight = imgPhoto.Height;
if (imgWidth > maxWidth) //如果宽度超过高度以宽度为准来压缩
{
if (imgWidth > maxWidth) //如果图片宽度超过限制
{
int toImgWidth = maxWidth; //图片压缩后的宽度
int toImgHeight = (int)((float)imgHeight / ((float)imgWidth / (float)toImgWidth)); //图片压缩后的高度
System.Drawing.Bitmap img =
new System.Drawing.Bitmap(imgPhoto, toImgWidth, toImgHeight);
imgPhoto.Dispose();
img.Save(NewFilePath, System.Drawing.Imaging.ImageFormat.Jpeg); //保存压缩后的图片
result = true;
}
}
else
{
if (imgHeight > maxHeight)
{
int toImgHeight1 = maxHeight;
int toImgWidth1 = (int)((float)imgWidth / ((float)imgHeight / (float)toImgHeight1));
System.Drawing.Bitmap img =
new System.Drawing.Bitmap(imgPhoto, toImgWidth1, toImgHeight1);
imgPhoto.Dispose();
img.Save(NewFilePath, System.Drawing.Imaging.ImageFormat.Jpeg); //保存压缩后的图片
result = true;
}
}
if (result == false)
{
System.Drawing.Bitmap img = new System.Drawing.Bitmap(imgPhoto);
imgPhoto.Dispose();
img.Save(OldFilePath, System.Drawing.Imaging.ImageFormat.Jpeg); //保存压缩后的图片
}
imgPhoto.Dispose();
return result;
}
}

最后一个if,是无论是否压缩调整输出,原有的图片都会进行压缩,有些图片分辨路达不到需要压缩的规格,但是体积很大,通过这样的压缩,就可以缩小体积,减少占用网络传输资源

你可能感兴趣的:(c#,开发语言)