디시인사이드 갤러리

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

갤러리 본문 영역

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

이세상끝에서갤로그로 이동합니다. 2011.11.14 20:07:18
조회 96 추천 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 - -
288706 jsp랑 자바스크립트랑 다른거임? [6] ㅇㅇ(203.237) 11.11.17 158 0
288705 여자어는 지나치게 변화무쌍해서 해석이 제각각이다. [1] 거칠게갤로그로 이동합니다. 11.11.17 116 0
288703 여친 사귀지 마라 조낸 힘들다. [5] 거칠게갤로그로 이동합니다. 11.11.17 282 0
288702 웹봇같은게 웹긁어올때 코멘트도 긁음? ㅁㄴㅇ(210.178) 11.11.17 58 0
288699 2011 후반 프갤 아싸는 주어없는그분인가 [1] Stan(220.244) 11.11.17 106 0
288698 너네...그거아냐... 다익스트라는....코딩을...못했대...전혀... [4] ㅇㅇ(112.145) 11.11.17 139 0
288696 마이크로스프트웨어 구독해보는 사람있나? [1] 초딩6(59.13) 11.11.17 70 0
288695 ++연산자 이상하게 사용하면 언어마다 값이 다름 [9] 폐인의세계갤로그로 이동합니다. 11.11.17 129 0
288694 이스트소프트에서 만든것 중 가장 잘만든건 알툴바지 ㅋㅋㅋ [3] 1(118.220) 11.11.17 165 0
288693 나도 알씨 때문에 항의 했었는데 [1] 이모군(175.114) 11.11.17 101 0
288692 미래를 위해 치킨집 메뉴도 구성해보자~ [7] 쿄스케갤로그로 이동합니다. 11.11.17 123 0
288691 이스트 소프트야 말로 [2] 시불라미갤로그로 이동합니다. 11.11.17 136 0
288690 횽아들 도와줘.. 이런.. 허접한 코딩가트니라고. ㅁㅇㅇㅇ(117.16) 11.11.17 48 0
288689 한국 사회에선 군내나 학벌 문제로 한번 찍히면 좆됨 -ㅂ-(210.90) 11.11.17 97 0
288688 아악 시발 벌레가 있네!!!! [2] 거칠게갤로그로 이동합니다. 11.11.17 119 0
288687 제가 치킨집을 차린다면 숏코딩 이벤트를 열거에요 [5] [성대아싸]갤로그로 이동합니다. 11.11.17 162 0
288686 이스트소프트 쓰레기 양성회사 아니냐 [8] 알탱o갤로그로 이동합니다. 11.11.17 331 0
288685 샘숭은 월급 100만원도 아까운거다 [8] 거칠게갤로그로 이동합니다. 11.11.17 198 0
288684 c문법만 배웠는데 지식이 머릿속에 붕붕 떠 있는 기분임 [3] 1(118.220) 11.11.17 84 0
288683 호스팅 잘 아는 횽들 좀 도와주라.... [2] ㅁㄴㅇㄹ(121.66) 11.11.17 56 0
288682 전화로 치킨주문하면 간단한 코딩문제를 내자 [4] 알탱o갤로그로 이동합니다. 11.11.17 121 0
288681 int x = 7; x = x++; x의 값은? [11] 폐인의세계갤로그로 이동합니다. 11.11.17 357 0
288680 불만제로에 나온거 본 죽 아니냐? [1] 이모군(175.114) 11.11.17 68 0
288679 Asshole Driven Development - 이거 공감하는횽들? 폐인의세계갤로그로 이동합니다. 11.11.17 47 0
288678 밑에 꼴리는대로 radio button 만드는방법.pwn [11] Stan(220.244) 11.11.17 136 0
288677 알집은 모르겠고 알씨는 레알 스레기 [3] 1(118.220) 11.11.17 87 0
288675 아 심장떨려 미치겠네요,,, 임원면접 남았어요ㅠㅠ [8] [성대아싸]갤로그로 이동합니다. 11.11.17 194 0
288672 싼 인력 들어오면 새로운 기회가 [4] 막장갤신학생갤로그로 이동합니다. 11.11.17 80 0
288671 시간없다. 궁금한거 빨리 물어봐 1시간 남음 [2] dd(211.50) 11.11.17 56 0
288668 알집은 사기인가요? [9] 빼갈(107.5) 11.11.17 126 0
288666 c언어 모듈까지 배웠는데 이걸로 뭘 어쩌란건지 하나도 모르겠다 [4] 1(118.220) 11.11.17 90 0
288665 동양 캐피탈 이 개 잡것 들 막장갤신학생갤로그로 이동합니다. 11.11.17 51 0
288664 이젠 짱깨, 인도, 아프리카까지 상대해야 하는구나. [2] 거칠게갤로그로 이동합니다. 11.11.17 64 0
288663 안드로이드 imagebutton을 radiogroup처럼 쓸수없을까요? [6] 얼룩돼지갤로그로 이동합니다. 11.11.17 61 0
288662 이거좀 봐주라고횽들아!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (121.173) 11.11.17 29 0
288661 mysqli-php5 관련질문 [8] jwseo(124.5) 11.11.17 89 0
288660 숨만 쉬고 공부만 하면 [4] 늅뉴비(216.165) 11.11.17 136 0
288659 구글판 아이튠즈 탄생?? [1] 시불라미갤로그로 이동합니다. 11.11.17 73 0
288658 컴공 지원생인데 프로그래밍 맛볼려면 좋은 책좀 [2] ㅁㅁ(125.135) 11.11.17 106 0
288657 내 자신이 두렵다 [1] Adelposs갤로그로 이동합니다. 11.11.17 57 0
288656 아프리카어가 전망이 좋아 보인다 [5] 분당살람갤로그로 이동합니다. 11.11.17 106 0
288655 비쥬얼스튜디옹 잡기능말입니다 [2] 금고래갤로그로 이동합니다. 11.11.17 55 0
288653 이번 텀도 끝나가는군.... 땡칠도사갤로그로 이동합니다. 11.11.17 48 0
288652 샘숭 아프리카 개발자를 확보해라!! [2] 거칠게갤로그로 이동합니다. 11.11.17 100 0
288651 횽들 이거좀 봐줘.. [2] (121.173) 11.11.17 40 0
288649 형들 VCNC 질문있어요 복학생(112.171) 11.11.17 73 0
288646 자바랑 자바스크립트 차이 모르는 넘들이 제일 어이없음 [3] 알탱o갤로그로 이동합니다. 11.11.17 234 0
288645 오늘 다리가 정말 얘쁜사람을봤는데 [1] ㅂㅈㄷ(210.178) 11.11.17 105 0
288643 아따 요즘 신입들은 적어도 연봉 3천이랑께~ [2] 거칠게갤로그로 이동합니다. 11.11.17 199 0
288640 횽들 양산형 JSP 학원생인데 SI로 가는게 좋을까여? 솔루션으로 가는게 [4] 호옹이(222.117) 11.11.17 156 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2