C# 無損縮圖(方法2:使用ImageCodecInfo、EncoderParameter)

  • 788
  • 0

C# 無損縮圖(方法2:使用ImageCodecInfo、EncoderParameter)

public Stream getPicThumbnail(string filePath, int density)
{
	//讀取圖檔
	System.Drawing.Image inputImage = System.Drawing.Image.FromStream(new MemoryStream(File.ReadAllBytes(filePath)));
	//縮圖
	ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
	System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
	EncoderParameters myEncoderParameters = new EncoderParameters(1);
    //density 壓縮比例 (1-100)
	EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, Convert.ToInt64(density);
	myEncoderParameters.Param[0] = myEncoderParameter;
	//存檔
	MemoryStream stream = new MemoryStream();
	inputImage.Save(stream, jpgEncoder, myEncoderParameters);                
	stream.Position = 0;

	//釋放資源
	inputImage.Dispose();
	GC.Collect();
	return stream;                
}

回傳為Stream