[TRUCO DELPHI] Girar un Bitmap.
delphi
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.
Ejemplo de uso:
delphi
BitmapFlip(True, False, Image1.Picture.Bitmap, Image1.Picture.Bitmap );
Saludos!