Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перевернуть компонент Image1 [D6]


erudit ©   (2005-12-26 22:07:00) 

Привет! Хочу спросить, можно ли как-нибудь перевернуть изображение в Image1, ну, градусов не на СОРОК (шутка), а на 90? Вроде простой компонент, а мозгов нет (пока).


0bsid   (2005-12-29 11:45:00) [1]

нашёл в доках с delphiworld.narod.ru

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо