.net - 한번에 - 포토샵 이미지 크기 변경 단축키




앤티 앨리어싱을 사용하여.Net에서 이미지 크기 조정 (4)

문제는 다른 장소 일 수 있습니다. 나는 이미지의 크기를 재조정하기 위해 비슷한 코드를 사용하지만 괜찮 았지만 가장 큰 차이는 이미지를 저장할 때 품질 (JPEG)을 지정해야한다는 것입니다.

ImageCodecInfo[] codecs=ImageCodecInfo.GetImageEncoders();
ImageCodecInfo codec = null;
for (int i = 0; i<codecs.Length;i++)
{
  if(codecs[i].MimeType.Equals("image/jpeg"))
    codec = codecs[i];
}

EncoderParameters encoderParametersInstance = null;

if (codec!=null)
{
  Encoder encoderInstance=Encoder.Quality;
  encoderParametersInstance = new EncoderParameters(2);
  //100% quality, try different values, around 80-90 gives good results.
  EncoderParameter encoderParameterInstance=new EncoderParameter(encoderInstance, 100L);
  encoderParametersInstance.Param[0]=encoderParameterInstance;
  encoderInstance=Encoder.ColorDepth;
  encoderParameterInstance=new EncoderParameter(encoderInstance, 24L);
  encoderParametersInstance.Param[1]=encoderParameterInstance;
}

MemoryStream ms = new MemoryStream();
resizedImage.Save(ms, codec, encoderParametersInstance);

꽤 일반적인 이미지 크기를 조정하는 C # 코드가 있습니다.

Bitmap bmp = new Bitmap(image, new Size(width, height));
Graphics graphics = Graphics.FromImage(bmp);
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.DrawImage(bmp, width, height);

문제는 결과 이미지에 명확하게 앨리어싱이 적용되고 InterpolationMode 및 SmoothingMode 속성이 변경 되어도 아무런 차이가없는 것입니다.

어떤 포인터?



코드가 틀렸어. 실제로 비트 맵 생성자에서 보간없이 이미지의 크기를 조정하고 해당 버전을 이미 크기였던 크기로 부드럽게 크기를 조정하려고 시도했습니다. 다음은 수정 된 코드입니다.

Bitmap bmp = new Bitmap(width, height);
Graphics graph = Graphics.FromImage(bmp);
graph.InterpolationMode = InterpolationMode.High;
graph.CompositingQuality = CompositingQuality.HighQuality;
graph.SmoothingMode = SmoothingMode.AntiAlias;
graph.DrawImage(image, new Rectangle(0, 0, width, height));

앤티 앨리어싱에 관한 한 가장 중요한 매개 변수는 graph.InterpolationMode 입니다.

감사.






graphics