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;
비트맵의 칼라수가 256칼라가 맞나요? 현재 코딩은 256칼라처리로 보이는데요?
RowOut : pByteArray; 이 놈을 비트맵의 칼라수에 맞게끔 선언해 줘야합니다.
감사합니다.