C# 이미지 사이즈를 변경할 때 품질이 떨어지지 않게 유지하는 방법.
페이지 정보
본문
이미지의 크기 또는 각도를 변경하게되면 이미지의 품질이 저하되거나 왜곡이 발생할 수 있습니다. 이미지를 분석할 때 품질이 크게 영향을 주지 않는다면 문제가 되지 않겠지만, 비교 또는 문자 판독과 같은 경우에는 품질 유지가 중요합니다. 품질은 여러가지 옵션이 존재하니 직접 수정해서 사용해도 됩니다.
/// <summary>
/// 이미지의 크기를 조정합니다.
/// </summary>
/// <param name="image">크기를 조정할 이미지입니다.</param>
/// <param name="scale">크기를 조정할 비율입니다.</param>
/// <param name="highQuality">이미지를 최상의 품질로 변환합니다.</param>
/// <returns></returns>
public static Image Resize(Image image, int scale, bool highQuality = true)
{
if (NSL.ModuleCheck.Invalid)
{
image.Dispose();
return null;
}
int resizeWidth = (int)(image.Width * (scale / 100f));
int resizeHeight = (int)(image.Height * (scale / 100f));
var res = new Bitmap(resizeWidth, resizeHeight);
using (var graphic = Graphics.FromImage(res))
{
if (highQuality)
{
graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphic.SmoothingMode = SmoothingMode.HighQuality;
graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphic.CompositingQuality = CompositingQuality.HighQuality;
}
else
{
graphic.InterpolationMode = InterpolationMode.Low;
graphic.SmoothingMode = SmoothingMode.HighSpeed;
graphic.PixelOffsetMode = PixelOffsetMode.HighSpeed;
graphic.CompositingQuality = CompositingQuality.HighSpeed;
}
graphic.DrawImage(image, 0, 0, resizeWidth, resizeHeight);
}
image.Dispose();
return res;
}
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
추천0 비추천0
- 이전글딥러닝을 위한 이미지 크롤링 프로그램 만들기. (전체 소스 코드 포함) 21.05.09
- 다음글이미지를 고정 비율로 사이즈 변경하기. (Resize an image to a fixed ratio.) 21.05.08
댓글목록
등록된 댓글이 없습니다.