我需要通过网络来传输一些图片,我保存JPEG和40%的图像质量如下:更改尺寸
public void SaveJpeg(string path, Image image, int quality) {
if((quality < 0) || (quality > 100)) {
string error = string.Format("Jpeg image quality must be
between 0 and 100, with 100 being the highest quality. A value of {0} was
specified.", quality);
throw new ArgumentOutOfRangeException(error);
}
EncoderParameter qualityParam = new
EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
ImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
image.Save(path, jpegCodec, encoderParams);
}
但随着这样的JPEG文件的大小不够小,我也改变质量,但这不是很好的外观。有什么办法可以保存较小文件大小和适当外观的图片吗?我不知道,但有没有办法使用System.Drawing.Graphics
对象,我也不需要压缩文件,或者更改图像的尺寸,现在只是图片文件的大小很重要。
您可以使宽度和高度更小或者必须使图片尺寸保持不变吗? – 2012-01-01 13:02:11
@Jason Down不,我希望能找到一种无变化的方式 – Saeid 2012-01-01 13:03:09
那么真的只有三种方法来减小文件的大小。降低质量,减小尺寸或将格式更改为具有更好压缩比的其他格式(不知道如何在.Net中以任何方式执行此操作,而不是通常的选择)。 – 2012-01-01 13:08:48