안녕하세요~
1비트로 구성된 bmp 파일을 1 픽셀씩 읽어면
그값이 0 이나 1로 표시 되지 않나요?
제가 잘못 읽어서 그런지 0,34 ,244, 255 ...
등으로 읽어집니다.
제가 궁극적으로 하고자 하는 것은 1픽셀씩 읽어와
8픽셀이 모이면 이를 1byte 합칠려고 하는 것입니다.
아래와 같이 읽었는데 잘못 읽은 부분이 있으면 지적 부탁 드립니다.
======== 아 래 ================
var
Image : Pointer;
PixelData : pByte;
Bmp:= TBitmap.Create;
bmp.LoadFromFile('test.bmp');
bmp.pixelformat:=pf1bit;
for j:=0 to bmp.height -1 do begin
PixelData:=bmp.ScanLine[j];
for i:=0 to bmp.width-1 do begin
Image[i,j]:=PixelData^;
inc(PixelData);
end;
end;
==============================
참 그리고 두번째 질문이 있습니다.
1 픽셀씩 읽은 픽셀 data를 8 픽셀를 묶어 1byte로 표시 할려면 비트
연산을 해야 하나요?
어떻게 구현 하는지도 답변 부탁 드릴께요
그러 수고 하세요. ^.~
1비트 비트맵이라면 한 픽셀씩 읽음 당연히 0아니면 1로만 표시됩니다.
하지만 1비트 비트맵이라고 해서 한픽셀당 한바이트를 차지하는게 아니라 8픽셀당 한바이트를 차지합니다.
Image[i,j]:=PixelData^;
위부분은 한 픽셀을 읽은게 아니라 8픽셀을 읽은겁니다.
1픽셀씩 읽어와서 8픽셀을 한 바이트로 만들어줄 필요는 없을거 같은데요...
1 바이트당 8픽셀로 되어 있는것을 1픽셀씩 읽어와서 8픽셀을 다시 1바이트로 만든다는게..
좀 무의미한 일이 아닐런지...
^^ 항상 즐코하세요...