Bu unit program bitmap çevirme işleminde kullanılır.
Kod: Tümünü seç
unit ads_BitmapFlip;
interface
Uses Windows,Graphics;
Function BitmapFlip(
Const Vertical : Boolean;
Const Horizontal : Boolean;
var BitmapIn : TBitmap;
out BitmapOut : TBitmap): Boolean;
implementation
Type
TColorData = Array[0..128000] Of TRGBTriple;
pColorData = ^TColorData;
Function BitmapFlip(
Const Vertical : Boolean;
Const Horizontal : Boolean;
var BitmapIn : TBitmap;
out BitmapOut : TBitmap): Boolean;
Var
DataIn : pColorData;
DataOut : pColorData;
inRow : Integer;
inCol : Integer;
Begin
Result := False;
Try
If BitmapIn.PixelFormat <> pf24bit Then Exit;
With BitmapOut Do
Begin
Width := BitmapIn.Width;
Height := BitmapIn.Height;
PixelFormat := BitmapIn.PixelFormat;
End;
For inRow := 0 To BitmapIn.Height - 1 Do
Begin
DataIn := BitmapIn.Scanline[inRow];
If Vertical Then
Begin
DataOut := BitmapOut.ScanLine[BitmapIn.Height - 1 - inRow];
End
Else
Begin
DataOut := BitmapOut.ScanLine[inRow];
End;
If Horizontal Then
Begin
For inCol := 0 To BitmapIn.Width-1 Do DataOut[inCol] := DataIn[BitmapIn.Width-1-inCol];
End
Else
Begin
For inCol := 0 To BitmapIn.Width-1 Do DataOut[inCol] := DataIn[inCol];
End;
End;
Result := True;
Except
End;
End;
End.