BMP이미지(2bit흑백)의 row data값을 배열로 받고 싶은데..

vision625의 이미지

2bit bmp 이미지(단순히 흑,백 바이너리 이미지, biBitCount=1) 파일을 받아서 배열에 저장하고 싶은데여.

bmp헤더정보 분석해 보니, 2bit bmp이미지 같은 경우에는 팔레트를 안써도 돼는거 같던데.

그럼 어떤식으로 배열크기를 잡아서 할당해줘야 하는지, 그리고 bmp이미지 같은 경우, 거꾸로 저장이 된다고 하는데

어떤식으로 계산을 해서 해야돼는지 잘 개념이 안 잡히네여..

c언어로 짜고 있는데, 지금은 2비트로 하고 있고, 앞으로 8비트, 24비트(트루) bmp 이미지도 받아서 처리해줘야 될 듯 싶습니다.

이왕이면 한번에 다양한 비트의 bmp이미지를 처리해 줄 수 있는 코드를 만들었으면 합니다.

좀 도와주세여~

현재까지 진행된 소스....

void main()

{

FILE *fp; /

char header[14];

//unsigned int bfsize,bfOffbits,biSizeimage,fisize,hsize,headerSize,biCompression,biClrUsed;

unsigned short bitcount;

unsigned int width;

unsigned int height;

unsigned char *bitmapInfoHeader;

unsigned char *pixelPointer;

fp = fopen("파일명", "rb");

if(fp==NULL){

puts("파일 창조 실패");

return;

}

BITMAPFILEHEADER bmpfileheader; // BMP 파일의 헤더

BITMAPINFOHEADER bmpinfoheader; // BMP 파일의 정보

fread(&bmpfileheader,sizeof(BITMAPFILEHEADER),1,fp); //비트맵 파일헤더 읽기(구조체 시작주소 이후에 읽어들인다)

fread(&bmpinfoheader, sizeof(BITMAPINFOHEADER), 1, fp); // 비트맵 정보헤더 읽기

//if(bmpfileheader.bfType!=0x4D42) exit(1);

//if (bmpinfoheader.biBitCount == 1) //픽셀당 비트의 수 = 1

}

doldori의 이미지

http://easybmp.sourceforge.net/

C++ 소스지만 핵심적인 부분은 금방 알아보실 수 있을 겁니다.
그 외에 Charles Petzold의 Programming Windows에 잘 나와 있던 것으로
기억합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.