Q&A

  • 자료실에 있는 소스를 가지고 해봤는데는 잘 안되네요
aaa.zip에 있는 소스를 가지고 내 컴퓨터에서 테스트를 해보는데 잘 안되네요
이미지 작업인데요
뭐가 잘못된게 있는지 잘 모르겠네요
아시는 분 부탁합니다.
소스도 같이 올립니다.

var
  NewBitmap:  TBitmap;
  Delta    :  INTEGER;
  i        :  INTEGER;
  j        :  INTEGER;
  NewValue :  INTEGER;
  RowIn    :  pByteArray;
  RowOut   :  pByteArray;
BEGIN
  NewBitmap := TBitmap.Create;
  TRY
    NewBitmap.Width  := Image1.Picture.Bitmap.Width;
    NewBitmap.Height := Image1.Picture.Bitmap.Height;

    NewBitmap.PixelFormat := Image1.Picture.Bitmap.PixelFormat;

    Delta := ColorTB1.Position;

    FOR j := 0 TO Image1.Picture.Bitmap.Height-1 DO
    BEGIN
      RowIn  := Image1.Picture.Bitmap.Scanline[j];
      RowOut := NewBitmap.Scanline[j];
      FOR i := 0 TO 3*Image1.Picture.Bitmap.Width-1 DO
      BEGIN
        NewValue := RowIn[i] + Delta;
        IF NewValue > 255 THEN
           NewValue := 255
        ELSE
        IF NewValue < 0  THEN
           NewValue := 0;

        RowOut[i] := BYTE(NewValue)
      END
    END;

    Image3.Picture.Bitmap := NewBitmap;

  FINALLY
    NewBitmap.Free;
  END
end;
1  COMMENTS
  • Profile
    KDDG_Drop 2003.04.12 00:45
    안녕하세요. 주삼식입니다.
    비트맵의 칼라수가 256칼라가 맞나요? 현재 코딩은 256칼라처리로 보이는데요?
    RowOut   :  pByteArray; 이 놈을 비트맵의 칼라수에 맞게끔 선언해 줘야합니다.
    감사합니다.