FLTK 1.3.x 를 위한 smooth image scaler: fl_smimg

Posted by 빵빵빵
2014/02/13 11:08 전산(컴퓨터)/PC-Windows



출처 : http://rageworx.tistory.com/1365
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
원 저작자의 라이선스를 준수합니다.
------------------------------------------------------------------------------------------------------------------------

FLTK 1.3.x 버젼을 쓰면서 부족한 부분이 있다면 바로 Fl_Image 의 copy() 함수를 통한 scale 기능이라 하겠습니다. 실제 내부에서 이 scale 엔진은 GraphicDriver의 resize 를 호출 하는데 이 부분은 실제 nearest resize 가 수행 되므로 뭔가 부드럽게 연산이 처리된 형태의 이미지를 얻을수가 없게 됩니다.

 

 이를 해결하기 위해 만든 것이 fl_smimg 이며, 이 소슨는 FreeImage Library 3 의 resize 부분을 추출 해서 FLTK 에 맞게 변경 하였으며, 그 적용은 아래 처럼 됩니다. 이미지는 인터넷에 도는 것을 임의로 사용하였는 상태 입니다. (우주선 이미지는 Mass Effect 의 Normandy 호 입니다 )

 

클릭하여 큰 이미지로 볼수 있습니다.

 

 먼저 Fl_Window 에 Fl_Box 하나를 만들어 배경으로 지정하고, 그 위에 다시 Fl_Box 두개를 각각 만들어 fl_smimg 를 통해서 scale 된 이미지와, 일반 copy() 를 통해 scale 된 이미지를 2가지 동일하게 그렸을 때 차이를 비교 했습니다.

 

 

 fl_smimg 로 Lanczos3 알고리즘을 사용한 32bit( RGBA ) 이미지는 꽤 부드럽게 scale 되었습니다. 이미 꿀뷰3 와 같은 곳에서도 많이 쓰이는 알고리즘으로서 그 품질은 입증된 상태라 하겠습니다.

 반면 기본 scale 은 아래 이미지 처럼 Alias 라 불리는 계단 형태의 깨지는 모습을 그대로 보여줍니다.

 

 

 fl_smimg 에서 제공되는 filter 는 FreeImage Library 3 (이하 FIL3 로 표기) 에서 제공하는 것과 같으며, 이중 Blackman filter 는 제외 하였습니다. (뭔지 모르겠다는 이유가 큽니다) 기본 형태는 FIL3 의 CGenericFilter class 를 이름을 변경 하여 다음과 같이 제공 합니다.

 

CGenericFilter -> GenericFilter

CBoxFilter -> BoxFilter

CBilinearFilter -> BilinearFilter

CBicubicFilter -> BicubicFilter

CCatmullRomFilter -> CatmullRomFilter

CLanczos3Filter -> Lanczos3Filter

CBSplineFilter -> BSplineFilter

 

 또한 CResizeEngine 은 ResizeEngine 으로, MFC 에서 관례적으로 쓰는 Class 이름 앞에 C 를 붙이는 형태를 모두 제거한 상태 입니다.

 

 실제 사용은 fl_smimg.h 와 cpp 파일 두개만 보면 이해 할 수 있는 수준 입니다만, 약간의 예제를 보면 다음과 같이 사용 되었습니다.



다운로드는 아래 파을 다운로드 받으시면 되며, 이는 GPL v3 에 따른 공개 입니다.

원본 소스는 Code::Blocks 에서 열어서 MinGW 를 통해 바로 compile 가능 하나, 먼저 시스템에 FLTK 1.3.x 버젼이 compile 되고, 이를 Code::Blocks 에서 FL 환경 인자로 설정이 되어 있어야 합니다. ( OS 는 아무것이나 상관 없이 FLTK 가 설치되는 상태면 동일하게 동작 합니다. Windows, Linux, Embedded Linux, MacOS 정도 )

 

 물론 GPL v3 에 따라 소스는 공개되고 저유로히 사용이 가능 합니다만, 이에 따르는 일절 책임은 절대 지지 않음을 먼저 이해해 주시기 바랍니다. 또한 해당 코드 내에 버그에 대해서도 대응하지 않음은 물론, 이에 따른 버그 수정 또한 다운로드 받아 쓰는 사용자의 책임임을 먼저 인지 하시기 바랍니다.

 

fltk_smoothresize.7z

 

FreeImage 3

 Design and implementation by
 - Floris van den Berg (flvdberg@wxs.nl)
 - Herv?Drolon (drolon@infonie.fr)

This file is part of FreeImage 3, and modified from it's original.

COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT
THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL
PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
THIS DISCLAIMER.

Use at your own risk!

 

"fl_smimg" is based in part on the work of the FLTK project (http://www.fltk.org).

 

이것저것 다 불편하면

sourceforge.net/projects/imageenlarger

 

걍 이거 쓰면된다...

추천 속성 : Sharpness : 0, Flatness : 100, PreSharpen : 100, Dithering : 0, DeNoise : 0, FractNoise : 0

 

2014/02/13 11:08 2014/02/13 11:08

MFC 메모리 릭 체크용 함수

Posted by 빵빵빵
2014/02/13 11:03 전산(컴퓨터)/PC-Windows



특정 번지에 메모리가 할당되면 자동으로 브레이크를 걸어주는 코드

#define _DEBUG 가 선언된 상태(디버그 모드로 컴파일되는 상태)에서 해야하고

lRequestNumber 주소의 메모리가 할당되는 순간 자동으로 브레이크가 걸려 메모리 릭을 손쉽게 잡을 수 있게 해준다.

하지만 메모리 릭 잡는건 어쨋거나 통밥 짬밥이 필요하다... ㅡㅡ;;;;;


2014/02/13 11:03 2014/02/13 11:03

강남 일본어 스터디 모집합니다. 상급반

Posted by 빵빵빵
2014/01/14 14:43 일상사/일본어




신청은 원문링크로 : http://cafe.naver.com/nihongokkureomi/367083

선생님이 일본인 이십니다.

2014년2월 일본어스터디한일교류회 상급2클래스신청안내(강남)



안녕하세요.이번 상급2클래스를 담당하는 치사토센세 입니다^_^


일본인선생님과 함께 즐겁게 공부를 희망하시는 분들 대환영입니다.
일꾸를 사랑하는 멤버분들이라면 누구나 참여할수 있는 공간입니다.
상급2라고 해서 전혀 어렵지않습니다^ - ^
토킹중심으로 수업을 진행합니다!!
말하기 약하신분 배우러오세요.
즐거운 수업이 되도록 노력하겠습니다.


<일본어꾸러미 한일스터디교류회 상급2클래스신청안내>


스터디장소
토즈 강남2호점 ☎ 02-591-0116 ?

시간
매주 금요일 7시 30분 ~ 9시 30분 (4주간 수업)

기간
2014년 2월7일(금)부터2월28일(금)


정원
한클래스당 8명이내(선착순 마감)


참가비
60,000원 (4주비용) ※개인사정에 의한 캔슬시 환불불가.(단, 클래스 미편성시 전액환불)

입금계좌
우리은행 김승수 1002-335-007313 ※꼭! 스터디 신청자 이름으로 입금해주세요.

교재
센세의 프린트물로 강의합니다.

레벨
JLPT1급2급수준
일본어일상회화가능자

참가신청서

양식
※아래사항 기재후 편한방법으로 보내주시고, 꼭! 덧글달아주세요.
메일 fslqve@gmail.com

1 이름(성별) :
2 주소 : 간단히 동까지만
3 연락처:
4 E-mail :
5 카페닉네임 :

※메일신청후 신청자이름으로 입금하시고 문자보내주세요.
みなさん、よろしくおねがいします^ - ^


















신청은 원문링크로 : http://cafe.naver.com/nihongokkureomi/367083
2014/01/14 14:43 2014/01/14 14:43