'GDI+'에 해당되는 글 2건

  1. 2008.09.04 C#으로 이미지 리사이즈/조작 시 부드럽게 렌더링 하기
  2. 2007.04.11 명령행으로 웹사이트를 캡쳐하는 URL2PNG v0.2
2008.09.04 19:48

C#으로 이미지 리사이즈/조작 시 부드럽게 렌더링 하기

간단한 팁.
C#에서 GDI+의 Graphics 오브젝트를 사용해서 렌더링을 할 때 사이즈 변경 등의 변형이 일어나면 들쭉날쭉한 도트가 심해지는 현상이 있는데요, 간단하게 InterpolationMode를 설정하여 렌더링 방식을 선택할 수 있네요.

Image img = Image.FromFile("a.jpg");

using (Bitmap bitmap = new Bitmap(img.Width, img.Height))

{

using (Graphics g = Graphics.FromImage(bitmap))

{

        // 드로잉 모드

        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

        // 메모리에 렌더링

        g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height));

// 파일 저장

        bitmap.Save("a.png");

}

}

내친김에 간단한 윈폼 프로젝트를 하나 만들어서 각 모드별 차이점을 찾아봤어요.


이미지를 선택하면 무조건 200 x 200 사이즈로 렌더링 하는데요, 각 모드별로 걸리는 시간도 함께 표시했어요.


각 모드별로 구분이 확실히 되죠? High...시리즈가 확실히 품질이 더 좋지만 리사이즈에 시간이 훨씬 더 걸리죠.


InterpolationMode는 텍스트나 직선이 많이 들어갈 때 더 확실히 차이가 나는데요, High...시리즈는 흐릿하지만 어느 정도 글자를 읽을 수 있게 되죠.


대용량 사진으로 테스트. 가장 시간이 많이 걸리는건 HighQualityBilinear 방식이고요, 계산을 더 할 수록 이미지가 부드러워지는 혹은 흐려지는 경향이 있네요. HighQualityBilinear는 원본 이미지가 너무 뭉개지는 감이 있고요, HighQualityBicubic이 적당해 보여요.

특히 Deepzoom을 사용할 때에는 이미지가 가급적 부드러운 쪽이 더 자연스러운 확대축소 효과를 보여주게 되므로 혹시 Deepzoom을 위한 이미지를 코드로 리사이즈 한다면 부드러우면서도 약간이나마 더 빠른 HighQualityBicubic쪽을 추천해요.


출처: http://gongdo.tistory.com/

신고
Trackback 11 Comment 0
2007.04.11 12:57

명령행으로 웹사이트를 캡쳐하는 URL2PNG v0.2

2006-08-12
오류가 발생하는 분들이 계셔서, FSG v2.0 으로 실행압축했던 것을 하지 않았습니다. 또 이 녀석은 VS 2005 로 컴파일했고, GDI+ 를 사용하기 때문에 아래 구성요소가 없다면 정상적으로 실행되지 않습니다. 실행 오류가 발생한다면 설치 후 다시 실행해 보시기 바랍니다. ^^
Microsoft Visual C++ 2005 재배포 가능 패키지(x86)
Platform SDK Redistributable: GDI+

웹사이트 캡쳐 노가다가 귀찮아, 아토에 있던 기능을 따로 분리해 구현하고, 필요한 분들이 있을 것 같아 배포합니다. 사용법은 아래와 같습니다.

url2png 주소 파일명
url2png http://www.slashdot.org/ slashdot.png

다운로드

아토를 릴하고 싶었지만 여의치 않아 급조한 대타입니다. 내일 부터는 아기다리고기라던 휴가라 당분간 업데이트도 어렵고요. 그럼~

*** url2png 는 상업적인 용도로 사용할 수 없습니다.

출처 : Loser's

신고
Trackback 0 Comment 0


티스토리 툴바