디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

프갤러들아 빨리 bmp크기조절하는 법좀 알려줘

이세상끝에서갤로그로 이동합니다. 2011.11.14 20:07:18
조회 95 추천 0 댓글 7

#include <windows.h>   
#include <io.h>   //오픈을 이용해서 파일을 열기 위해 사용
#include <fcntl.h>   //오픈을 이용해서 파일을 열기 위해 사용
#include "resource.h"   
  
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);   
HINSTANCE g_hInst;   
LPCTSTR lpszClass=TEXT("Img Viewer");   
  
#pragma pack(1)   
typedef struct BITHEADER   // 파일 헤더 구조체 선언
{   
    WORD bfType;   
    DWORD bfsize;   
    WORD bfReserve1;   
    WORD bfReserve2;   
    DWORD bfOffset;   
}BITHEADER;   
  
typedef struct BITINFOHEADER   // 영상 헤더 구조체 선언 
{   
    DWORD biSize;   //헤더크기
    LONG biWidth;   //폭
    LONG biHeight;   //높이
    WORD biPlanes;   
    WORD biBitCount;   
    DWORD biCompression;   
    DWORD biSizeImage;   
    LONG biXPelsPerMeter;   
    long biYPelsPerMeter;   
    DWORD biClrUsed;   
    DWORD biClrImportant;   
}BITINFOHEADER;   
 
  
  
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,   
                     LPSTR lpszCmdParam, int nCmdShow)   
{   
    HWND hWnd;   
    MSG Message;   
    WNDCLASS WndClass;   
    g_hInst=hInstance;   
       
    WndClass.cbClsExtra=0;   
    WndClass.cbWndExtra=0;   
    WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);   
    WndClass.hCursor=LoadCursor(NULL, IDC_ARROW);   
    WndClass.hIcon=LoadIcon(NULL, IDI_APPLICATION);   
    WndClass.hInstance=hInstance;   
    WndClass.lpfnWndProc=WndProc;   
    WndClass.lpszClassName=lpszClass;   
    WndClass.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);   
    WndClass.style=CS_HREDRAW|CS_VREDRAW;   
    RegisterClass(&WndClass);   
       
    hWnd=CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW,   
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,   
        NULL, (HMENU)NULL, hInstance, NULL);   
    ShowWindow(hWnd, nCmdShow);   
       
    while(GetMessage(&Message, NULL, 0, 0))   
    {   
        TranslateMessage(&Message);   
        DispatchMessage(&Message);   
    }   
    return (int)Message.wParam;   
}   
  
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)   
{   
    HDC hdc;        
    int fd, x, y;   
    PAINTSTRUCT ps;   
    OPENFILENAME OFN;   
    TCHAR str[300];   
    TCHAR buffer[300];   
    TCHAR dummy[3];   
    TCHAR lpstrFile[MAX_PATH] = "";   
    BITHEADER BitHeadr;   
    BITINFOHEADER BitInfo;   
    COLORREF color = RGB(0, 0, 0);   
  
    switch(iMessage)   
    {   
    case WM_COMMAND:   
        switch(LOWORD(wParam))   
        {  
        case ID_FILEOPEN:   
            memset(&OFN, 0, sizeof(OPENFILENAME));   
            OFN.lStructSize = sizeof(OPENFILENAME);   
            OFN.hwndOwner = hWnd;   
            OFN.lpstrFilter = TEXT("모든 파일(*.*)\\0*.*\\0비트맵(*.bmp)\\0*.bmp\\0JPG(*.jpg)\\0*.jpg\\0");   
            OFN.lpstrFile = lpstrFile;   
            OFN.nMaxFile = MAX_PATH;   
  
            if(GetOpenFileName(&OFN) == 0)   
            {   
                return 0;   
            }   
            fd = open(OFN.lpstrFile, O_RDONLY);              
               
            read(fd, buffer, sizeof(BitHeadr));   
            memcpy(&BitHeadr, buffer, sizeof(BitHeadr));   
            lseek(fd, 0, SEEK_CUR);   
            read(fd, buffer, sizeof(BitInfo));   
            memcpy(&BitInfo, buffer, sizeof(BitInfo));     
            lseek(fd, BitHeadr.bfOffset, SEEK_SET);    //비트맵 데이터 시작지점으로 이동
               
            hdc = GetDC(hWnd);
                        
           
           if(BitInfo.biWidth)       
            {  
                for(y = BitInfo.biHeight; y >0; y--)   
                {   
                    for(x = 0; x < BitInfo.biWidth; x++)   
                    {   
                        read(fd, buffer, 3);   
                        color = RGB(buffer[2], buffer[1], buffer[0]);   
                        SetPixel(hdc, x, y, color);   
                        lseek(fd, 0, SEEK_CUR); 
                    }   
                }             
                    }
                   
               }
                
                
                


        return 0;   
                
    case WM_DESTROY:   
        PostQuitMessage(0);   
        return 0;   
    }   
    return(DefWindowProc(hWnd, iMessage, wParam, lParam));   
}  



256색 출력은 짐작조차 안가서 넘어가고
크기 조절이라도 좀 해보려고하는데 어떻게 해야하냐
저기 밑에 출력부분 가로랑 세로 2로 나눠서 출력해보니 색이랑그림이 병신 되더라고
어떻게 해야할지 감이안온다.
으아아아아 시발 좃같은 발표.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이제는 의미 없어진 것 같은 시상식은? 운영자 25/12/01 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
288264 너네 C++로 코딩할떄 #define 쓰지마라 [8] 유동닉ㅈㅅ(211.232) 11.11.15 237 0
288262 어제 이사님한테 제발 어플 좀 만드는데 투입해 달라고 부탁함.. [4] 쿄스케갤로그로 이동합니다. 11.11.15 108 0
288261 회사다니면서 플젝하면 여러사람이랑 같이 일하자나 [2] 길가던놈갤로그로 이동합니다. 11.11.15 99 0
288260 Things make to remember my name.swf [3] Stan(220.244) 11.11.15 93 0
288259 야 이펙티브C++ 책 구라 안까고 다 이해한 프갤러 있냐 [5] 유동닉ㅈㅅ(211.232) 11.11.15 139 0
288258 ajax로 불러온 php문서안의 echo + 자바스크립트는 실행안되나요? [3] 민트(68.107) 11.11.15 73 0
288257 억 일베 보니까 곽횽이랑 50플 넘겨야지 프갤러 되는 거였네.. [4] 쿄스케갤로그로 이동합니다. 11.11.15 106 0
288256 여자랑 작업하면 좋다... 쿄스케갤로그로 이동합니다. 11.11.15 106 0
288254 c 언어 파일 입출력(복사 하는거) 답 iljeomobolt갤로그로 이동합니다. 11.11.15 74 0
288253 data structure의 동기화 방법의 관례? [1] 비밀의계곡갤로그로 이동합니다. 11.11.15 80 0
288251 여자들과 같이 일해보고 싶다~~~ [1] 거칠게갤로그로 이동합니다. 11.11.15 125 0
288250 여자에게 어그로 끄는 법 [2] 거칠게갤로그로 이동합니다. 11.11.15 147 0
288249 공대 아름이가 늘고있다니! [2] 일광면(119.198) 11.11.15 120 0
288248 whitepaper datasheet 차이 [1] 아이티바보(211.112) 11.11.15 37 0
288247 보통 신입 들어오면 몇 달만에 도망가??? [3] 거칠게갤로그로 이동합니다. 11.11.15 273 0
288245 C언어에서 파일입출력관련해서 [3] Snow(210.115) 11.11.15 89 0
288244 로또 vs 연금 복권 [4] 거칠게갤로그로 이동합니다. 11.11.15 92 0
288243 천회장// 루비언어 좋음여? [3] 자바인(211.117) 11.11.15 113 0
288242 클라우드 서비스 이용해서 애플리케이션 개발하면 [1] (210.90) 11.11.15 79 0
288241 큰 수 5개 [3] 천회장(112.219) 11.11.15 78 0
288239 잠이덜깨 비몽사몽하지만 점심시간과 三didas갤로그로 이동합니다. 11.11.15 59 0
288238 좋은 하루보내고계십니까들? 三didas갤로그로 이동합니다. 11.11.15 29 0
288236 WPF에서 변경사항이 있을때 호출되는 메서드가 뭐야? [1] 해물(61.81) 11.11.15 46 0
288234 자바에서 배열 100개가 있고 숫자가 섞여있을때 가장 큰수부터 5개 뽑으 [11] 자바인(211.117) 11.11.15 272 0
288233 정보통신기사 난이도 어떰? [1] 남대생.갤로그로 이동합니다. 11.11.15 163 0
288232 혹시 BCGsoft MFC ㅊㅊ(222.112) 11.11.15 57 0
288231 플밍 잘하는 횽들 좀 도와줘 [2] 플밍어려워(123.109) 11.11.15 66 0
288230 여기 짤방 v3 버전이 얼마더라 -.-; [3] iljeomobolt갤로그로 이동합니다. 11.11.15 119 0
288229 컴퓨터 공학도인데 질문점 쌀게요 [5] 김딸똘갤로그로 이동합니다. 11.11.15 123 0
288228 목소리 변할까봐 살도 못빼고.. iljeomobolt갤로그로 이동합니다. 11.11.15 45 0
288227 니가와 내밥말아무... iljeomobolt갤로그로 이동합니다. 11.11.15 44 0
288226 프레디 가 죽었을때 참 축격이었어 ... iljeomobolt갤로그로 이동합니다. 11.11.15 47 0
288225 안철수횽에 관심이 많고 관련 기사나 정보 갖고 있는 횽들 있어? [4] MEECL갤로그로 이동합니다. 11.11.15 118 0
288223 C에서 %2d 이런식으로 글자 폭 정하는거 처럼 자바도 있나요?? [2] dd(211.117) 11.11.15 75 0
288221 플개이들아 나에게 힘을줘.ㅠ 자바 고수님 환영 굽신굽신 [1] 으아아(211.117) 11.11.15 52 0
288218 상담 하나만 해도 될까? [2] ㅇㅇ(112.152) 11.11.15 79 0
288217 이거만 올리고 숙제해야지..... 땡칠도사갤로그로 이동합니다. 11.11.15 96 0
288216 헐 4시 넘엇어 ㅠㅠ [1] 일광면(119.198) 11.11.15 68 0
288215 히발라야 레알 듸즤겄네 - _-) [2] 땡칠도사갤로그로 이동합니다. 11.11.15 98 0
288214 방금 글올렸는데 여기서 어떻게 해야할까 ㅜ 돌파구가 안보여 ㅜ [11] ㅇㅇ(110.11) 11.11.15 133 0
288213 형들 C언어 파일 입력좀 도와줭 [9] dd(211.196) 11.11.15 125 0
288212 여기서 국어편차 수학편차 어떻게 할까 ㅜㅜ [2] ㅇㅇ(110.11) 11.11.15 58 0
288211 아.. 과제셔틀은 웁니다.. [1] Aven갤로그로 이동합니다. 11.11.15 68 0
288210 죽겠다...ㅡ.,ㅡ 이문동쮸쮸바갤로그로 이동합니다. 11.11.15 48 0
288209 프갤형들 [3] ㅇㅇ(112.171) 11.11.15 79 0
288208 날씨가 추워지니 벌써 과메기가 나왔군... [1] 이문동쮸쮸바갤로그로 이동합니다. 11.11.15 78 0
288207 개 씨팔 [2] PoRO갤로그로 이동합니다. 11.11.15 54 0
288205 형들 제발가르켜주세요 [1] 허졉(115.140) 11.11.15 45 0
288202 헬지 유플러스 [1] sxvc(124.49) 11.11.15 42 0
288200 인생사 새옹지마 고기(58.122) 11.11.15 52 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2