Q&A

  • Scanline 의 예제에서요??
안녕하세요.

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;
1  COMMENTS
  • Profile
    박상윤 2002.04.05 01:45
    P : PByteArray; 는 PBYTE에서 계승을 받은 것입니다.
    즉 BYTE 8bit 256컬러를 처리한다는 이야기이지여..
    PRGBarray는 PRGBTRIPLE에서 계승 받은것입니다.
    PRGBTRIPLE은 내부에   PBYTE를 가지구 있다고 생각하시면 됩니다.
    컬러마다 하나씩 즉 3x8=24비트 이지여...
    24비트 컬러 이미지를  처리 할때...사용합니다.

    다른 비트의 컬러를 처리 하실경우
    WORD,DWORD등으로 받으셔서 필요한 데이터 만큼  잘라서
    사용하시면 됩니다.

    모두 픽셀단위를 직접 처리하기위해서 사용합니다.