有時,我們在程序中想把比較大的圖片壓縮為比較小的尺寸。下面的程序就是將圖片壓縮為較小尺寸的函數。
/// <summary>
/// 壓縮圖片的算法
/// </summary>
/// <param name="fileStream">圖片流</param>
/// <param name="quality">壓縮質量,取值在0-100之間,數值越大質量越高</param>
/// <returns></returns>
private byte[] CompressionImage(Stream fileStream, long quality)
{
using (System.Drawing.Image img = System.Drawing.Image.FromStream(fileStream))
{
using (Bitmap bitmap = new Bitmap(img)) {
ImageCodecInfo CodecInfo = GetEncoder(img.RawFormat);
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);
myEncoderParameters.Param[0] = myEncoderParameter;
using (MemoryStream ms = new MemoryStream()) {
bitmap.Save(ms, CodecInfo, myEncoderParameters);
myEncoderParameters.Dispose();
myEncoderParameter.Dispose();
return ms.ToArray();
}
}
}
}0L); //最低質量 1M 大小的jpg圖片可以壓縮到180k左右
在程序中的調用方法:CompressionImage(stream,
|
新聞熱點
疑難解答