가능한 한 빠른 방법으로 이미지의 품질을 프로그래밍 방식으로 줄이려고합니다. 현재는 byte[]
에서 이미지를 읽을 수 있으며 MemoryStream
은 Bitmap
으로, Drawing.Imaging.Encoder.Quality
은으로 저장할 때 품질이 변경됩니다.저장하지 않고 JPEG 이미지 품질 줄이기
전체 이미지를 저장하지 않고이 작업을 수행 할 수있는 방법이 있는지 알고 싶습니다. 비트 맵 bmp1
을 변경하거나 이미지 품질이 떨어지는 새 비트 맵을 만드는 방법이 있습니까?
byte[] imageBytes = convertImageToByteArray(bmpScreenshot);
MemoryStream mem = new MemoryStream(imageBytes);
using (Bitmap bmp1 = (Bitmap)Image.FromStream(mem))
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
ImageCodecInfo jgpEncoder = codecs[1];
System.Drawing.Imaging.Encoder myEncoder =
System.Drawing.Imaging.Encoder.Quality;
myEncoderParameter = new EncoderParameter(myEncoder, 20L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp1.Save(@"C:\TestPhotoQuality20L.jpg", jgpEncoder, myEncoderParameters);
}