Espejo vertical en un Bitmap  

Enviado Por: Q3 Team
Web : http://www.q3.nu
Email: dlib@q3.nu
Fecha: 12/09/99

Truco accedido 92 veces

 


  • Pon un TButton (Button1) y un TImage (Image1) en tu form
  • Carga una imagen en Image1
  • Put this code into OnClick of Button1:


     procedure TForm1.Button2Click(Sender: TObject);
    
     procedure EspejoVrt(BMPOrigen, BMPDestino:TBitmap);
     var
        f,c:integer;
        Ancho,Alto:integer;
        tmpBMP: TBitmap;
     begin
       {Bitmap temporal}
       tmpBMP:=TBitmap.create;
       with tmpBMP do
       begin
         Height:=BMPOrigen.height;
         Width :=BMPOrigen.width;
       end;
    
       {Inicializamos los límites de los bucles}
       {Initialize loop's limits}
       Ancho:=BMPOrigen.Width-1;
       Alto :=BMPOrigen.Height-1;
    
       {Copiamos los pixels}
       {Copy the pìxels}
       for f:=0 to Alto do
       begin
         for c:=0 to Ancho do
           tmpBMP.Canvas.Pixels[c,f]:=BMPOrigen.Canvas.Pixels[c,Alto-f];
       end;
    
       BMPDestino.Assign(tmpBMP);
       tmpBMP.Free;
     end;
    
     begin
       EspejoVrt(Image1.Picture.Bitmap,Image1.Picture.Bitmap);
     end;
    



    Puedes usar la funcion con el mismo Bitmap como origen y como destino o poner la imagen resultante en otro bitmap.