본문 바로가기

프로그래밍

Visual C++ 2008 MFC Chapter 8 비트맵 및 이미지 처리 - 4 냅다 출력화면부터 보고! #endif //_DEBUG //추가부분 inline void RGBtoGray(COLORREF& rgb) { BYTE byGray = (GetRValue(rgb) *30 + GetGValue(rgb) *59 + GetBValue(rgb) *11) /100; rgb = RGB(byGray,byGray,byGray); } //여기까지 //CSaveGrayDemoView.cpp에 추가하는 코드 //이 코드는 RGB를 흑백화 하는 코드이다. ///////////////////////////////// void CSaveGrayDemoView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을.. 더보기
Visual C++ 2008 MFC Chapter 8 비트맵 및 이미지 처리 - 3 BMP파일이 아닌 다른 이미지 파일을 출력하는 함수에 관한 내용. 1. CImage를 사용하려면 atlImage.h를 인클루드 해야함. 2. 예제에서는 상대경로를 집어넣은지라 기본 경로가 해당 프로젝트가 있는 폴더 이지만 절대경로를 입력해주어도 됨. 3. 이 함수가 지원하는 형식은 BMP, JPEG/JPG, GIF , PNG 등임. ////////////////////////////////////////////////////// 프로젝트명은 ImgOutDemo 흔한SDI문서로 제작하고 Cpp파일의 선언부에 다음 코드를 추가하여 인클루드함. //추가부분 #include //종료 다음으로 흔한 OnPaint를 작성하고 다음과 같이 코딩. // CImgOutDemoView 메시지 처리기 void CImgOut.. 더보기
Visual C++ 2008 MFC Chapter 8 비트맵 및 이미지 처리 - 2 고급 이미지 출력 함수. BitBlt나 StretchBlt 함수를 이용하면 단순하게 범위 지정, 출력만 가능하기때문에 고급! 이미지 출력함수가 필요하다. 뭐가 고급인지는 모르겠지만. 뭐 그냥 기능이 더 추가된 출력함수 라고 보면 될듯.. 고급! 이미지 출력 함수로는 TransparentBlt와 AlphaBlend 가 있다. void CBmpOutDemoView::OnPaint() { CPaintDC dc(this); // device context for painting CDC MemDC; BITMAP bmpInfo; MemDC.CreateCompatibleDC(&dc); CBitmap bmp; CBitmap* pOldBmp = NULL; bmp.LoadBitmap(IDB_Test_Image); bmp... 더보기
Visual C++ 2008 MFC Chapter 8 비트맵 및 이미지 처리 새 단어가 많아서 써두는 ===================================================== 비트맵 이미지를 출력하는 전형적인 방법은 리소스로 등록된 비트맵 이미지를 메모리 DC에 로드하여 화면DC로 출력 하는 것 이것을 BitBlt() 라고 함. 이미지의 크기를 변경하는 함수 : StretchBlt() 일부 영역을 투명하게 처리하는 함수 : TransparentBlt() 반투명하게 처리하는 함수 : AlphaBlend() 비트맵에 대한 이론 비트맵은 장치 의존적인 비트맵과 장치 독립적인 비트맵 으로 나뉘어진다. Device Dependen Bitmap // Device Independent Bitmap 우리가 아는 비트맵은 모두 DIB라고 봐도 무방하다고 한다. ======.. 더보기
Visual C++ 2008 MFC Chapter 7 GDI 실습예제 GDI는 양이 엄청 많지만 그러므로 더욱 실습예제를 해야만.. 이해도를 높일 수 있을 것 같다. 그러하다.. 프로젝트명은 GDIEX 1번문제 "\t 이것은 실습을 위한 \n문자열입니다." 라는 문자열을 TextOut(), TabbedTextOut(), DrawText() 함수를 이용하여 각각 출력하는 예제를 작성해봅시다. - 이 문제에서 일단 \t와 \n때문에 TabbedTextOut(), DrawText() 을 써야함을 알 수 있다. 바로 전에 작성한 코드의 형식을 빌려서 만들어 보았다. ===================================================== void CGDIEXView::OnPaint() { CPaintDC dc(this); // device context f.. 더보기