|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.06.2014, 21:41 | #11 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
XE5, понятно, через API. Ну да , компактно получилось.
|
15.06.2014, 22:02 | #12 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
Да - это был бы идеальный вариант, если бы он работал не с компонентом image, а переменной типа TBitmap. Я попробую конечно его применить к моему примеру - посмотрим, что получится.
Также уже начал подставлять формулу в свою процедуру от type_Oleg. В принципе пока достиг того же результата, что и был до этого. Изображение поворачивается но размывается постепенно. Процедура получилась следующей: procedure IMGRotate(IMG:TBitmap; Angle:single); var X,Y:uint; buf:TBitmap; x0,y0:Integer; //center katrinki sinus, cosinus: Extended; Result:Tpoint; begin Buf:=TBitmap.Create; Buf.Width:=IMG.Height; Buf.Height:=IMG.Width; //tochka vokrug kotoroy nizhno vertet - tsentr izobrazheniya x0 := img.Width div 2; y0 := img.Height div 2; Angle:=Angle*PI/180; for X:=0 to IMG.width-1 do begin for Y:=0 to IMG.Height-1 do begin //vichislyaem koordinati Result.X:=Round(x0+(x-x0)*Cos(Angle)-(y-y0)*Sin(Angle)); Result.Y:=Round(y0+(x-x0)*Sin(Angle)+(y-y0)*Cos(Angle)); Buf.Canvas.Pixels[x,y]:=Img.Canvas.Pixels[Result.X,Result.Y]; //beliy tsvet delaem prozrachnim if (Buf.Canvas.Pixels[x,y]=clWhite) then Buf.Canvas.Pixels[x,y]:=Buf.TransparentColor; end; end; IMG.Canvas.Draw(0,0,Buf); Buf.FreeImage; Buf.Free; end; Прилагаю собственно само приложение для наглядности, если нужно. Пока буду дальше работать над алгоритмом. |
16.06.2014, 01:55 | #13 | |
Заблокирован
Регистрация: 02.03.2014
Сообщений: 439
|
Цитата:
Код:
Код:
Последний раз редактировалось XE5; 16.06.2014 в 03:10. |
|
16.06.2014, 11:54 | #14 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
Огромное спасибо. Проблема решена. Спасибо всем за помошь.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поворот изображения | Sanya.Kushner | Мультимедиа в Delphi | 1 | 29.12.2013 19:59 |
поворот изображения на форме (либо поворот файла с картинкой) | 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 |
поворот изображения | Пепел Феникса | Мультимедиа в Delphi | 1 | 21.06.2009 19:53 |