비트맵 이미지를 배열로 넣을 수 있을까요?
글쓴이: Seven.. / 작성시간: 화, 2004/04/06 - 10:33오후
비트맵 이미지를 배열로 넣고 싶습니다.
예를들어 400*300의 이미지일 경우
Array[400][300] 의 크기에
넣고 싶은데요
컬러(24bit)와 그레이스케일(8bit)의 경우에 대해 알고 싶습니다.
컬러는 구조체 배열에 넣어도 되고 아니면 3가지 배열에 넣어도 되겠죠..RGB..
그레이는 하나의 배열에 넣어야 하고..
방법을 자세히 알려주시면 감사하겠습니다 ㅠ.ㅜ
제 생각에는 앞의 헤더부분을 날리고
8bit씩 읽어오면 될것 같은데요....
읽는 방법을 도무지 모르겠네요 ^^;; 에고
그리고 그배열을 이용해서 약간의 조작을 가하고,,
(예를들면 어디부터 어디를 완전 검정으로 만든다던지..)
그리고 다시 비트맵으로 저장하려면 어떻게 해야 할까요 ㅠ.ㅜ
Forums:
구글에서 gd로 검색해보시고 소스 받아서 살펴보세요.
구글에서 gd로 검색해보시고 소스 받아서 살펴보세요.
픽셀당 RGBA 해서 int 하나면 됩니다..각각이 1바이트씩 먹기
픽셀당 RGBA 해서 int 하나면 됩니다..
각각이 1바이트씩 먹기 때문에 =333 비트연산을 사용하면 .. =33
gd소스를 보시면.. gdImage 란 구조체에.
px 이던가..p던가.. 하튼 int**이 있는데.. 그게.. 이미지를 저장하는..
포인터배열이 =333 되는 곳입니다..
gdImageCreate나..
gdImageCreateTrueColor을 호출하면..
거기에.. 포인터배열을 할당하고..
각각에.. 배열을 할당해주죠 =3=33
gdImageCreateFromJpeg
gdImageCreateFromPng
등을 보심 어떻게 할당하는지도 알수 있구요 ;)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
허접..
올려짐: 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개.. )
비트맵파일헤더
비트맵인포헤더
(256컬러인경우 컬러맵 256개.. )
(16컬리인경우 컬러맵 16개)
각픽셀당정보
이렇게 생겨먹었구요 =3=3
16비트인경우 각픽셀당정보가 2바이트
24비트는 3바이트 RGB
32비트는 4바이트입니다 RGBA
또한 비트맵은 거꾸로 들어있어서 아래서부터 읽어야 합니다..
더 자세한건 MSDN에서 BITMAP_FILEHEADER정도로 검색해보시고
꼬리에 꼬리를 무는 링크를 따라가시면 =3=33
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
비슷한 프로그램을 만든적이 있는데요..
저같은 경우에는..
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!
댓글 달기