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등으로 받으셔서 필요한 데이터 만큼  잘라서
    사용하시면 됩니다.

    모두 픽셀단위를 직접 처리하기위해서 사용합니다.
서버에 요청 중입니다. 잠시만 기다려 주십시오...