인터넷에서 jpeg 파일을 다운로드 한다. 아래의 예시에서는 test.jpg로 이름을 변경한 다음 아래의 코드를 이용하여 테스트 프로그램을 생성하여 테스트한다. 

     

    #include <stdio.h>
    #include <stdlib.h> // malloc and free
    #include <string.h>
    #include <jpeglib.h>
     
    struct jpeg_decompress_struct cinfo;
    struct jpeg_error_mgr jerr;
     
    int main(int argc, char** argv)
    {
            unsigned char fn[]="test.jpg";
                unsigned char *data;
     
                FILE* fp = fopen(fn,"rb");
                if (fp == NULL)
                {
                            printf("Failed to open '%'sn", fn);
                            return 0;
                }
     
                cinfo.err = jpeg_std_error(&jerr);
                jpeg_create_decompress(&cinfo);
     
                jpeg_stdio_src(&cinfo, fp);
                jpeg_read_header(&cinfo, TRUE);
     
                int w = cinfo.image_width;
                int h = cinfo.image_height;
                int d = cinfo.jpeg_color_space;
                int out_h = cinfo.output_height;
     
                printf("width:%d height:%d depth:%d out_height:%dn", w, h ,d, out_h);
     
                //unsigned char *data = new unsigned char[w * h * d];
                data = (unsigned char*)malloc(w*h*d);
                while (cinfo.output_scanline < cinfo.output_height)
                {
                            jpeg_read_scanlines(&cinfo, &data, 1);
                            data += d * cinfo.output_width;
                }
     
                fclose(fp);
                jpeg_finish_decompress(&cinfo);
                jpeg_destroy_decompress(&cinfo);
     
                free(data);
     
                return 0;
    }

     

    소스의 입력이 완료되면 다음과 같이 컴파일 한다.

     

    $ gcc -o jpeg_info jpeg_info.c -ljpeg

     

    실행은 다음과 같이 진행한다.

     

    $ ./jpeg_info test.jpeg

     

     

     

    "embeddedclub.net을 15년 넘게 운영하고 있지만, H사 퇴사이후 딱히 임베디드 시스템 위주의 개발을 한 것도 아니고, 야근에 밤샘으로 바뻐서 방치만 해놓고 있었는데 올해 10월에 문을 닫기로 하였습니다. 그래도 전에는 접속자수 및 이용량도 있고 해서 예전자료 백업용으로 놔뒀는데 이제는 그럴 이유가 없어졌고, 간혹 예전 자료가 필요한 경우가 있어 이제 개인 블러그로 옮기는 것으로 결정하였습니다. "

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기