bmp file을 어떻게 만들 수 있을까요?
글쓴이: shean0 / 작성시간: 목, 2003/05/22 - 2:52오후
안녕하세요..
정보가 필요해서 이렇게 문의를 드립니다.
현재 제가하려는 것이
bmp 화일을 만들려구 하거든요..
지금까지 제가 아는 것이라고는 bmp-header 에 맞추어서 정보를 셋팅하고.
그것을 임의의 내용과 함께 파일에 저장하면 ..
그것이 bmp파일이 된다 라고 들었습니다.
그래서.. 테스트를 해 보려구 하는데.. 영 정보를 못 찿겠네요.
아시는 분 있으시면... 조언을 부탁드립니다.
주==>)
인터넷에서 보니..예전 도스용 프로그램은 있던데. incude<graphics.h> 에서 걸리네요..
Forums:
BMP는 압축이 안되어있는 형식이므로 그냥 그대로 저장하면됩니다.예전
BMP는 압축이 안되어있는 형식이므로 그냥 그대로 저장하면됩니다.
예전에 BMP뷰어만들때 그냥 헤더빼고 그대로 읽어서 출력하니 그림이 나오더군요...
다만 BMP는 형식이 두가지 있는데 윈도에서 쓰는건 거꾸로 읽어야 그림이 제대로 나오더군요...아마 뒤에서 앞으로 저장하는듯...
일단, 비트맵 형식은 MSDN에서(좀 찜찜하지만 -_-) BITMAPFI
일단, 비트맵 형식은 MSDN에서(좀 찜찜하지만 -_-) BITMAPFILEHEADER, BITMAPINFO, BITMAPINFOHEADER 등을 검색하면 나올 것입니다. 데이터 형식이 Win32 기준이라는 것과, 데이터의 저장 방식이 Little Endian이라는 것만 명심하면 별로 어려울 것은 없을 것 같군요.
그리고 그림이 아래에서 위로 저장되는 것은 수학자들이 시스템을 설계해서 그렇다고 합니다. 컴퓨터 그래픽을 하는 사람들에게는 왼쪽 위가 시작이지만, 일반적으로 수학에서 이용하는 직교 좌표계는 왼쪽 아래가 시작입니다. 윈도에서 쓰는 GDI에 이러한 방법이 많이 이용됐다고 하네요.
[답변감사드리며] 추가..Unix에서는 어떻게 해야 하죠?
네..감사드립니다.
그런데.. unix에서는 어떻게 하죠...??
말씀하신부붑은 window상에서 하는 작업인데요.
제 경우는 소켓통신으로 해서... bmp-header를 제외한 부분[데이터] 만들
받을것 입니다.
그리고 이것에 bmp-header를 덧 붙여서 bmp파일을 만들고..
이것을 가지고..다시 jpeg..등등 변환 작업을 하려구 합니다.
뒷단은 어떻게 해야 할지 결정이 되었는데요.. 데이터를 가지고 bmp만드는 부분이 여전이 문제네요..
다시 조언을 부탁드립니다.
즉.. 로직으로 말씀 드리면..
read_data(sok,&buf[bmp-data]]);
input_bmp_header(buf); /* <==여기가 문제 */
fp= fopen( "sample.bmp","wb"); /* <== 여기가 문제 */
for( ; len ; ) fprintf("%c",buf);
fclose(fp);
close(sok);
fprintf("%c", buf
언제나 즐프를 꿈꾸며~
http://msdn.microsoft.com/library/defaul
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_2w1f.asp
여기 보시면 비트맵 헤더와 정보의 구조체가 있습니다. 그러면 여기서 구조체를 복제해서 프로그램에서 선언한 다음 쓰시면 됩니다. -_- 비트맵 파일에서 비트필드같은 것을 이용하지는 않으니 캐릭터 단위로 이용하면 별로 어려울 것은 없을 것 같습니다.
저도 윈도 API를 쓰지 않는 프로그램에서(돌기는 윈도에서 돌지만) 이렇게 짠 적이 있습니다.
BMP는 microsoft에서 만든 image format이니 MSDN을
BMP는 microsoft에서 만든 image format이니 MSDN을 본다고 해서 찝찝할 것 까지야 없겠죠. :)
하시려는 작업이 단순히 image format을 변경하는 것이라면 직접 하는 것도 좋지만 (Why reinvent the wheel?), 여러 라이브러리가 이미 나와 있으니 그걸 쓰시는 것이 훨씬 효율적일 것입니다.
대표적인 라이브러리로는 imlib2나, ImageMagick이 있습니다.
이 두 라이브러리의 홈페이지는 다음과 같습니다:
http://www.enlightenment.org/pages/imlib2.html
http://www.imagemagick.org/
기존의 image file을 다른 format으로 변경하는 것이라면 간단히 convert 프로그램을 쓸 수도 있으니 참고하세요. ;-)
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
제가 가라로 만들어 사용하고 있는 Bitmap관련 코든데 참고해보
다른 건 신경 안쓰셔도 되고요.. open(), save()만 보세요..
아 그리고 제가 Width와 Height를 2의 배수가 되도록 할 필요가 있어서 이상한
짓을 좀 했는데 신경 안쓰셔도 됩니다.
댓글 달기