[c#] 품질 손실없이 이미지 크기 조정 [닫기]

이미지 품질에 영향을주지 않고 이미지 크기를 조정하려면 어떻게해야합니까?



답변

으로 RCAR는 말한다, 당신은 어떤 품질을 잃지 않고, 최고의 당신은 C #에서 할 수 없습니다 :

Bitmap newImage = new Bitmap(newWidth, newHeight);
using (Graphics gr = Graphics.FromImage(newImage))
{
    gr.SmoothingMode = SmoothingMode.HighQuality;
    gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
    gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
    gr.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
}


답변

벡터 그래픽을 사용하지 않는 한 이미지 품질을 잃지 않고 이미지 크기를 조정할 수있는 방법이 없습니다.


답변

private static Image resizeImage(Image imgToResize, Size size)
{
    int sourceWidth = imgToResize.Width;
    int sourceHeight = imgToResize.Height;

    float nPercent = 0;
    float nPercentW = 0;
    float nPercentH = 0;

    nPercentW = ((float)size.Width / (float)sourceWidth);
    nPercentH = ((float)size.Height / (float)sourceHeight);

    if (nPercentH < nPercentW)
        nPercent = nPercentH;
    else
        nPercent = nPercentW;

    int destWidth = (int)(sourceWidth * nPercent);
    int destHeight = (int)(sourceHeight * nPercent);

    Bitmap b = new Bitmap(destWidth, destHeight);
    Graphics g = Graphics.FromImage((Image)b);
    g.InterpolationMode = InterpolationMode.HighQualityBicubic;

    g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
    g.Dispose();

    return (Image)b;
}

에서 여기


답변

당신이하려는 것은 당신의 이미지를 “크기 조정 / 리샘플링”하는 것입니다. 다음은 지침을 제공하고 유틸리티 클래스를 제공하는 좋은 사이트입니다.

http://www.codeproject.com/KB/GDI-plus/imgresizoutperfgdiplus.aspx


답변

크기를 조정하지 않으면 래스터 그래픽으로이 작업을 수행 할 수 없습니다.

좋은 필터링과 다듬기로 할 수있는 일은 눈에 띄는 품질 을 잃지 않고 크기를 조정하는 것 입니다.

이미지의 DPI 메타 데이터를 변경할 수도 있습니다 (일부 포함한다고 가정). 정확히 동일한 픽셀 수를 유지하지만 이미지 편집자가 ‘실제’측정에서 인식하는 방식을 변경할 수 있습니다.

그리고 모든 기반을 다루기 위해 실제 이미지 크기가 아닌 이미지의 파일 크기 만 의미했다면 이미지 데이터의 무손실 인코딩을 살펴볼 것을 제안합니다. 이에 대한 제 제안은 이미지를 .png 파일로 다시 저장하는 것입니다 (그림판을 Windows의 이미지에 대한 무료 트랜스 코더로 사용하는 경향이 있습니다. 그림판에서 이미지로드, 새 형식으로 저장)


답변

픽셀 수를 줄이기 때문에 품질 손실없이 이미지 크기를 조정할 수 없습니다.

브라우저는 이미지 크기를 잘 조정하지 않기 때문에 클라이언트 측 크기를 줄이지 마십시오.

할 수있는 일은 렌더링하기 전에 또는 사용자가 업로드 할 때 프로그래밍 방식으로 크기를 변경하는 것입니다.

다음은 C #에서이 작업을 수행하는 한 가지 방법을 설명하는 문서입니다.
http://www.codeproject.com/KB/GDI-plus/imageresize.aspx


답변

이 오픈 소스 ASP.NET 모듈이미지 크기 조정 품질이 마음에 드는지 확인하십시오 . 라이브 데모가 있으므로 직접 조작 할 수 있습니다. Photoshop 출력과 구별하기 어려운 결과를 산출합니다. 또한 비슷한 파일 크기를 가지고 있습니다. MS는 JPEG 인코더에서 좋은 일을했습니다.