디시인사이드 갤러리

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

갤러리 본문 영역

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

이세상끝에서갤로그로 이동합니다. 2011.11.14 20:07:18
조회 99 추천 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 루틴 ON! 운동 찐템! 지금 할인 중 운영자 25/11/27 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48833 65
2906622 눈빛 좀 봐.. ♥발라당냥덩♥갤로그로 이동합니다. 17:43 3 0
2906621 ai특징이 우덜들 절대 기계로 대체않함 ㅋㅋㅋ기상캐스터 등등 타이밍뒷.통수한방(1.213) 17:29 15 0
2906620 진지하게 언어 뭐로 정할까. 도와주셈 프갤러(175.197) 17:28 33 0
2906619 유재석 나락감?? 타이밍뒷.통수한방(1.213) 17:28 12 0
2906617 카드값 눈물난다 [2] ㅇㅇ(119.56) 17:08 22 0
2906616 크롬 localhost 접속문제 해결 가능하신분 [3] ㅇㅇ(221.158) 17:03 23 0
2906615 쿠팡 보이콧으로 네이버 쇼핑쓰는데 진짜 개느리구나 [1] 헬마스터갤로그로 이동합니다. 16:57 20 0
2906614 일본거주 11년차 외노자 일어 써봤습니다 [2] 프로외노자갤로그로 이동합니다. 16:26 34 0
2906613 37세 백엔드!! [1] 홍길동갤로그로 이동합니다. 15:43 34 0
2906612 저번달까지 현직자였는데 ai가 대체 못하는거 맞다. 프갤러(221.149) 15:38 49 0
2906611 아니 그록 뭐임 ㅋㅋ 프갤러(115.138) 15:20 38 0
2906610 속보 ) 2026년 윈도우12 출시예정-> 출시취소 타이밍뒷.통수한방(1.213) 15:10 24 0
2906609 쿠팡 해지함 (쿠팡이 망해야 한국경제가 산다) [4] 야옹아저씨갤로그로 이동합니다. 15:09 40 2
2906608 나이먹는거보다 저주인것 타이밍뒷.통수한방(1.213) 15:05 21 0
2906607 대통령보다 연봉높은 한국우주청 현실 ) 타이밍뒷.통수한방(1.213) 14:59 27 0
2906606 진지하게 고민중인데 봐줘라 [6] 야옹해갤로그로 이동합니다. 14:59 42 0
2906605 코딩을 오래하면 알게되는것 [2] 프갤러(118.235) 14:46 60 0
2906603 근 30년동안 엄청난 발전이됬지만 2100년될때 타이밍뒷.통수한방(1.213) 14:37 19 0
2906602 고졸인데 pccp 자격증 따면 좆소라도 취직가능? [2] ㅇㅇ갤로그로 이동합니다. 14:22 23 0
2906601 이런말 하는 사람 걸러라 [8] 프갤러(211.235) 14:18 103 0
2906600 인류는 진화하는게 절대 아님 타이밍뒷.통수한방(1.213) 14:15 19 0
2906598 C++ 인생 40 년 갈아 넣었습니다. 프갤러(59.16) 13:46 35 0
2906596 안랩 정류장 - 개인정보 넥도리아(223.38) 13:00 23 0
2906593 나노 바나나 프로 완전 정복: 성능 변화·업데이트 핵심 기능·무료 사용법 프갤러(1.234) 12:23 18 0
2906592 [애니뉴스] YxD Labs Client - 유튜브 프로그램 ㅇㅇ(121.172) 12:02 20 0
2906591 파이썬 현업자들. vscode vs pycharm 선택좀 [4] 프갤러(175.197) 11:56 37 0
2906590 오전부터 장애 대응 중.. cvs.갤로그로 이동합니다. 11:48 28 0
2906588 [애니뉴스] 이 멋진 세계에 축복을 3기 감상 [2] ㅇㅇ(121.172) 10:44 27 0
2906587 잔다 ㅇㅅㅇ [2] 헤르 미온느갤로그로 이동합니다. 09:44 32 0
2906586 어제 출근길..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:08 35 0
2906585 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:00 31 0
2906584 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:59 42 0
2906583 그래내가키라다 [4] 깃깃갤로그로 이동합니다. 08:39 63 0
2906582 AI 폼 미쳤다리.. [2] 프갤러(123.200) 08:09 64 0
2906581 님들 코딩테스트 필수인가요? [3] 프갤러(121.139) 06:33 77 0
2906580 인지과학조져라 손발이시립디다갤로그로 이동합니다. 06:14 50 0
2906579 ㄹㅇㄹㅇ 개춥 [2] ♥발라당냥덩♥갤로그로 이동합니다. 06:06 67 0
2906578 백준 실버는 원래 쉬운건가? [6] 프갤러(58.76) 05:39 74 0
2906575 쿠팡 자바스프링 쓴지 8년 넘었다 [1] 프갤러(61.75) 04:40 68 0
2906574 에휴.. [3] 프갤러(182.222) 04:15 64 0
2906572 ‘김예지 비하’ 고발당한 감동란, 국민의힘 입당 발명도둑잡기(118.216) 03:48 39 0
2906568 오늘의 영상 기획 실마리: 쇼미더머니 하세요 발명도둑잡기(118.216) 03:27 21 0
2906562 인공지능이 인간의 예술, 음식을 평가, 평론할 수 있을까요? 발명도둑잡기(118.216) 03:13 24 0
2906543 BC 카드 부자 되세요 발명도둑잡기(118.216) 01:42 31 0
2906542 나이 31살이라 코딩포기해야되나 ㅜㅜ [11] 프갤러(211.234) 01:35 142 0
2906541 AI기담|머리가 맛이 가서 의사도 포기 발명도둑잡기(118.216) 01:27 65 0
2906540 유럽, 북미 선진국에서 가장 입학이 어려운 학문 전공!R 프갤러(121.142) 00:59 59 1
2906539 악동뮤지션(Akdong Musician) 크레센도 (Crescendo) 발명도둑잡기(118.216) 00:43 21 0
2906538 일 잘하면 회사에서 겁나 고생한다.. [2] 프갤러(116.126) 00:32 77 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2