비트맵 이미지를 배열로 넣을 수 있을까요?

Seven..의 이미지

비트맵 이미지를 배열로 넣고 싶습니다.

예를들어 400*300의 이미지일 경우

Array[400][300] 의 크기에
넣고 싶은데요

컬러(24bit)와 그레이스케일(8bit)의 경우에 대해 알고 싶습니다.

컬러는 구조체 배열에 넣어도 되고 아니면 3가지 배열에 넣어도 되겠죠..RGB..

그레이는 하나의 배열에 넣어야 하고..

방법을 자세히 알려주시면 감사하겠습니다 ㅠ.ㅜ

제 생각에는 앞의 헤더부분을 날리고

8bit씩 읽어오면 될것 같은데요....

읽는 방법을 도무지 모르겠네요 ^^;; 에고

그리고 그배열을 이용해서 약간의 조작을 가하고,,

(예를들면 어디부터 어디를 완전 검정으로 만든다던지..)

그리고 다시 비트맵으로 저장하려면 어떻게 해야 할까요 ㅠ.ㅜ

Prentice의 이미지

구글에서 gd로 검색해보시고 소스 받아서 살펴보세요.

정태영의 이미지

픽셀당 RGBA 해서 int 하나면 됩니다..
각각이 1바이트씩 먹기 때문에 =333 비트연산을 사용하면 .. =33

gd소스를 보시면.. gdImage 란 구조체에.
px 이던가..p던가.. 하튼 int**이 있는데.. 그게.. 이미지를 저장하는..
포인터배열이 =333 되는 곳입니다..

gdImageCreate나..
gdImageCreateTrueColor을 호출하면..

거기에.. 포인터배열을 할당하고..
각각에.. 배열을 할당해주죠 =3=33

gdImageCreateFromJpeg
gdImageCreateFromPng
등을 보심 어떻게 할당하는지도 알수 있구요 ;)

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

qufdl113의 이미지

올려짐: 2004년4월7일 12:22 주제: 윈도우에서는..

--------------------------------------------------------------------------------

윈도우에서 작업하시는거라면,
비트맵파을 읽으면.
처음 머리부분에 아마도.
BITMAPINFOHEADER 라는 구조체가 들어있을꺼에요.
이거 떼어내서 보면. 그안에.
비트맵전체싸이즈, 그림 높이,그림 넓이, 비트카운트(16비트?24비트?)등이 있고. BITMAPINFOHEADER이후가 이미지 데이터 일껍니다.
rgb_mode = 비트카운트/3

for( i ; i<그림넓이;i++)
{
for( k; i<그림높이;k++)
{
//rgb_mode에따른 넣기작업.
// 배열에 넣기 작업.
}
}
그걸 비트카운트에 따라서 배열에 넣어주기만 하면 되여ㅡㅡ;
해본지가 오래되서, 잘 기억이 안나네요.

devpia.com가서 DIB만들기 검색하면 자세하게 나올껍니다.

정태영의 이미지

비트맵파일헤더
비트맵인포헤더
(256컬러인경우 컬러맵 256개.. )
(16컬리인경우 컬러맵 16개)
각픽셀당정보

이렇게 생겨먹었구요 =3=3

16비트인경우 각픽셀당정보가 2바이트
24비트는 3바이트 RGB
32비트는 4바이트입니다 RGBA

또한 비트맵은 거꾸로 들어있어서 아래서부터 읽어야 합니다..

더 자세한건 MSDN에서 BITMAP_FILEHEADER정도로 검색해보시고
꼬리에 꼬리를 무는 링크를 따라가시면 =3=33

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

dragonkun의 이미지

저같은 경우에는..
8bit의 경우..

헤더는 건너뛰고..
unsigned char를 BYTE로 typedef해서..

BYTE array[300][400];

식으로 300*400 만큼 바이트를 파일에서 읽어왔었죠..

24bit의 경우는..구조체로..

struct COLOR
{
BYTE r,g,b;
}

이런식으로 있는 구조체를 이용해서..

COLOR array[300][400];

식으로..300*400*3 바이트를 파일에서 읽는 방법을 썼습니다;

아...위의 분 글보고 생각난건데;;;
비트맵..뒤에서 앞으로 읽어야 방향과 색이 제대로 출력됩니다..

Emerging the World!

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.