Ir al contenido


Foto

[TRUCO DELPHI] Girar un Bitmap.


  • Por favor identifícate para responder
1 respuesta en este tema

#1 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 26 agosto 2016 - 08:51

[TRUCO DELPHI] Girar un Bitmap.


delphi
  1. Function BitmapFlip(
  2. Const Vertical : Boolean;
  3. Const Horizontal : Boolean;
  4. var BitmapIn : TBitmap;
  5. out BitmapOut : TBitmap): Boolean;
  6.  
  7. implementation
  8.  
  9. Type
  10. TColorData = Array[0..128000] Of TRGBTriple;
  11. pColorData = ^TColorData;
  12.  
  13. Function BitmapFlip(
  14. Const Vertical : Boolean;
  15. Const Horizontal : Boolean;
  16. var BitmapIn : TBitmap;
  17. out BitmapOut : TBitmap): Boolean;
  18. Var
  19. DataIn : pColorData;
  20. DataOut : pColorData;
  21. inRow : Integer;
  22. inCol : Integer;
  23. Begin
  24. Result := False;
  25. Try
  26. If BitmapIn.PixelFormat <> pf24bit Then Exit;
  27. With BitmapOut Do
  28. Begin
  29. Width := BitmapIn.Width;
  30. Height := BitmapIn.Height;
  31. PixelFormat := BitmapIn.PixelFormat;
  32. End;
  33. For inRow := 0 To BitmapIn.Height - 1 Do
  34. Begin
  35. DataIn := BitmapIn.Scanline[inRow];
  36. If Vertical Then
  37. Begin
  38. DataOut := BitmapOut.ScanLine
  39. [BitmapIn.Height - 1 - inRow];
  40. End
  41. Else
  42. Begin
  43. DataOut := BitmapOut.ScanLine[inRow];
  44. End;
  45. If Horizontal Then
  46. Begin
  47. For inCol := 0 To BitmapIn.Width-1 Do
  48. DataOut[inCol] := DataIn
  49. [BitmapIn.Width-1-inCol];
  50. End
  51. Else
  52.  
  53. Begin
  54. For inCol := 0 To BitmapIn.Width-1 Do
  55. DataOut[inCol] := DataIn[inCol];
  56. End;
  57. End;
  58. Result := True;
  59. Except
  60. End;
  61. End;
  62. End.

Ejemplo de uso:


delphi
  1. BitmapFlip(True,
  2. False,
  3. Image1.Picture.Bitmap,
  4. Image1.Picture.Bitmap
  5. );

Saludos!


  • 1

#2 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 4.017 mensajes
  • LocationMadrid - España

Escrito 26 agosto 2016 - 09:39

FlipImage GDI+
Rotar una imagen con GDI+ flat API. Rota una imagen un ángulo con GDI+

Como rotar un BitMap

Rotar un Bitmap (cHackAll)

 
Saludos.


  • 0