Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 21:22   #1
belanas
Новичок
Джуниор
 
Регистрация: 08.11.2011
Сообщений: 1
Восклицание Поворот изображения в Image

Добрый вечер!

Нужно по нажатию на кнопку поворачивать изображение в Image. Но при повороте почему-то границы новой картинки "съедаются". Т.е. нужно чтобы граница просмотра растягивалась в зависимости от высоты/ширины рисунка при повороте. Никак не получается решить эту проблему.
Если кто-то сталкивался с подобным, буду очень признательна в помощи.

Ниже представлен мой код. Сначала загружается в Image картинка из openDialog, а потом я пытаюсь ее повернуть по нажатию на кнопку.


Код:
procedure TForm1.btn2Click(Sender: TObject);
var
bm, bm1: TBitMap;
x, y: integer;
r, a: single;
xo, yo: integer;
s, c: extended;
begin

bm := TBitMap.Create;
bm.LoadFromFile(opendialog1.filename);

bm.Height:=Form1.img1.Picture.Height;
bm.Width:=Form1.img1.Picture.Width;

xo := bm.Width div 2;
yo := bm.Height div 2;

bm1 := TBitMap.Create;

bm1.Height := bm.Height;
bm1.Width := bm.Width;

a := 0;
repeat
   for y := 0 to bm.Height - 1 do begin
     for x := 0 to bm.Width - 1 do begin
       r := sqrt(sqr(x - xo) + sqr(y - yo));
       SinCos(a + arctan2((y - yo), (x - xo)), s, c);
       bm1.Canvas.Pixels[x,y] := bm.Canvas.Pixels[round(xo + r * c), round(yo + r * s)];
     end;
     Application.ProcessMessages;
   end;

     img1.Canvas.Draw(0,0,bm1);


   a := a + 0.05;
   Application.ProcessMessages;
until Form1.Tag <> 0;
bm.Destroy;
bm1.Destroy;
end;
Заранее большущее вам спасибо!

Последний раз редактировалось rpy3uH; 06.12.2011 в 21:34.
belanas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поворот изображения на форме (либо поворот файла с картинкой) mystiql Microsoft Office Access 2 21.06.2011 22:03
поворот изображения DeDoK Общие вопросы Delphi 4 06.09.2010 21:34
Поворот изображения Djony_91 Мультимедиа в Delphi 1 26.05.2010 16:15
поворот изображения на форме choknutii Общие вопросы C/C++ 1 21.07.2009 11:20
поворот изображения Пепел Феникса Мультимедиа в Delphi 1 21.06.2009 19:53