이미지파일 편집 프로그램 소스
- 최초 등록일
- 2011.11.05
- 최종 저작일
- 2010.12
- 30페이지/ 한컴오피스
- 가격 5,000원
소개글
위 프로그램은 이미지를 불러들여서 Adjust Brightness(증가 또는 감소), Adjust Contrast(증가 또는 감소), Negative Image, EdgeDetection Image, Grayscale Image, Blurriness Image, Sharpening Image, Embossing Image, Dithering Image(추가)의 기능을 이용해 사진을 조작 할 수 있다. 여러 기능 중복 또한 가능하다.
그래픽스 프로젝트 로 진행했던 것입니다.
open gl, visual studio2005 환경입니다.
소스는 문서내에 포함되어 있습니다.
감사합니다.
목차
1. 개 요
2. 분석
3. 합성
5. 소스코드
6. 실행결과 스크린샷
본문내용
5.2 함수 별 기능 설명
1) Dithering()
image는 rgb값을 전부 저장하고 있는 변수 이기 때문에 Dithering 작업을 위해선 4개의 픽셀을 하나의 픽셀로 봐야 하므로, timage라는 포인터 변수를 메모리에 할당해 준다. 첫 이중for은 해당이미지를 Grayscale로 변환하는 부분이고, 그 다음for문은에선 각 rgb의 값을 전부 모아서 avg에 저장하고 avg는 27개의 배열칸으로 나뉘어 있으므로 27로 나누어 level을 결정한다 그 후 level의 값에 따라서 각각의 점을 칠해준다. 이때 ChangeWhite, ChangeBlack함수는 pos라는 배열 위치값을 입력받아 ChangeWhite는 지정위치에 흰색으로 ChangeBlack은 지정위치에 검은색을 칠해준다. 모든 과정이 끝나면 timage의 값을 image로 넘겨준다.
2) AdjustSaturationPlus(), AdjustSaturationMinus()
Saturation을 수정하기 위해선 HSV값이 필요한데 현 체제는 RGB를 사용하므로 RGB를 HSV로
변환하는 과정이 필요하다. 또한 다시 출력하기 위해선 HSV를 RGB로 변환도 필요하다. 이 함수는 RGBtoHSV(), HSVtoRGB() 두 함수를 사용하여 변환을 하고 그 중간과정에서 s값을 증가 또는 감소 시키는 역할을 한다.
3) MAX(), MIN()
R, G, B값을 인자로 받아서 MIN은 그중 최소값을, MAX는 그중 최대값을 반환하는 함수이며,
RGBtoHSV()함수에서 사용된다.
4) AdjustBlurrning(), EdgeDetection(), Sharpening(), Embossing()
timage를 따로 할당하여 각 필터값을 timage에 적용시킨 후 다시 원래 image에 적용시키는 함수들이다. 각 기능별로 filter값의 차이만 있고, 세부 계산내용은 동일하다.
※ AdjustContrastPlus(), AdjustContrastMinus(), BrightnessPlus(), BrightnessMinus(), GrayScaleImage(), NegativeImage()등 그 외의 함수들은 수업시간에 교수님께서 직접 설명해주시고 제가 직접 구현했다고 말하기 힘든 부분이라서 특별한 설명은 첨부하지 않고, 제가 직접 구현한 부분에 한에서만 설명을 기술하였습니다.
참고 자료
없음