안녕하세요.
scanline 함수의 용도를 알아보기 위해서
델파이의 help을 검색해서 아래와 같은 소스를 발견했는데요..
어떻게 작동하는지 잘 이해가 안 되네요.
pByteArray , pRGBArray 등등은 시스템 기본 배열인가요?
하여튼...이거 설명 좀 부탁드립니다.
한 픽셀단위로 처리하는 게 맞는지요? ^^
그럼,20000.
procedure TForm1.Button1Click(Sender: TObject);
// This example shows drawing directly to the BitMap
var
x,y : Integer;
BitMap : TBitMap;
P : PByteArray;
begin
BitMap := TBitMap.create;
try
BitMap.LoadFromFile('C:Program FilesCommon FilesBorland SharedImagesSplash256colorfactory.bmp');
for y := 0 to BitMap.Height -1 do
begin
P := BitMap.ScanLine[y];
for x := 0 to BitMap.Width -1 do
P[x] := y;
end;
Canvas.Draw(0,0,BitMap);
finally
BitMap.Free;
end;
end;
즉 BYTE 8bit 256컬러를 처리한다는 이야기이지여..
PRGBarray는 PRGBTRIPLE에서 계승 받은것입니다.
PRGBTRIPLE은 내부에 PBYTE를 가지구 있다고 생각하시면 됩니다.
컬러마다 하나씩 즉 3x8=24비트 이지여...
24비트 컬러 이미지를 처리 할때...사용합니다.
다른 비트의 컬러를 처리 하실경우
WORD,DWORD등으로 받으셔서 필요한 데이터 만큼 잘라서
사용하시면 됩니다.
모두 픽셀단위를 직접 처리하기위해서 사용합니다.