БОЛЬШОЙ FAQ ПО DELPHI



Вращение изображения

Автор: Mike Williams

- Каково состояние Билла Гейтса?
- Каждому китайцу по 40 баксов...

Вот быстрый и примитивный способ вращения изображения. Должно работать. По крайней мере хоть какой-то выход из-положения, поскольку Windows этого делать не умеет. Но сначала попробуйте на небольший изображениях.


 procedure RotateRight(BitMap: tImage);
 var
   FirstC, LastC, c, r: integer;
 
   procedure FixPixels(c, r: integer);
   var
     SavePix, SavePix2: tColor;
     i, NewC, NewR: integer;
   begin
     SavePix := Bitmap.Canvas.Pixels[c, r];
     for i := 1 to 4 do
     begin
       newc := BitMap.Height - r + 1;
       newr := c;
       SavePix2 := BitMap.Canvas.Pixels[newc, newr];
       Bitmap.Canvas.Pixels[newc, newr] := SavePix;
       SavePix := SavePix2;
       c := Newc;
       r := NewR;
     end;
   end;
 
 begin
   if BitMap.Width <> BitMap.Height then
     exit;
   BitMap.Visible := false;
   with Bitmap.Canvas do
   begin
     firstc := 0;
     lastc := BitMap.Width;
     for r := 0 to BitMap.Height div 2 do
     begin
       for c := firstc to lastc do
       begin
         FixPixels(c, r);
       end;
       inc(FirstC);
       Dec(LastC);
     end;
   end;
   BitMap.Visible := true;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Видеокурс ВЗЛОМ