Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.10.2008, 17:34
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
Смущение Как пользоваться процедурой!?

Уже месяца 3 ищу в инете процедуру поворота изображения. Скачал это:
Код:
procedure povorot(bmp1: tbitmap; var bmp2: tbitmap; a: real);
var
  x1,y1: integer; // íîâàÿ òî÷êà
  x2,y2: integer;
  r: single; // ðàñòîÿíèå îò xo,yo è òî÷êîé êîòîðóþ íóæíî ïîâåðíóòü
  xo, yo: integer; // îòíîñèòåëüíî êàêîé òî÷êè íóæíî ïîâîðà÷èâàòü
  s, c: extended; // sin cos
begin
  xo:=bmp1.Width div 2; yo:=bmp1.Height div 2; // öåíòð êàðòèêè
  for y2 := 0 to bmp1.Height - 1 do
    for x2 := 0 to bmp1.Width - 1 do
    begin
      r := sqrt(sqr(x2 - xo) + sqr(y2 - yo)); // ðàñòîÿíèå îò ïîâîðà÷èâàåìîé òî÷êè äî òîé òî÷êè îòíîñèòåëüíî êîòîðîé íóæíî ïîâîðà÷èâàòü
      SinCos(a + arctan2((y2 - yo), (x2 - xo)), s, c);
      x1:=round(xo + r * c); y1:=round(yo + r * s);
      if (x1>=0)and(x1<bmp1.Width)and(y1>=0)and(y1<bmp1.Height) then // åñëè òî÷êà ïîñëå ïîâîðîòà íàõîäèòñÿ íà êàðòèíêå òî ðèñóåì åå
      begin
        if bmp1.Canvas.Pixels[x1,y1]<>clwhite then
          bmp2.Canvas.Pixels[x2,y2]:=bmp1.Canvas.Pixels[x1,y1];
      end
      else // èíà÷å âìåñòî íåå öâåò êîòîðûé áóäåò ïðîçðà÷íûé(â äàííîì ñëó÷àå áåëûé)
        bmp2.Canvas.Pixels[x2,y2]:=clwhite;
    end;
end;
 

После копирования с пояснениями что то случилось...
Вообщем функцию скачал... А че с ней делать незнаю!!! Пожалуйста объясните! Или кинте другую...
И что такое DLL и что с ним (как?) делать киньте ссылку на статейку... плз.
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
  #2  
Старый 06.10.2008, 17:40
Xcopy Xcopy вне форума
Прохожий
 
Регистрация: 06.10.2008
Сообщения: 35
Репутация: 10
Радость тут все есть

дык скачай заного, че непомниш откуда качал?
Ответить с цитированием
  #3  
Старый 06.10.2008, 17:44
Xcopy Xcopy вне форума
Прохожий
 
Регистрация: 06.10.2008
Сообщения: 35
Репутация: 10
Радость

http://www.helloworld.ru/texts/comp/.../dll/index.htm
тут все про ДЛЛ в делфи!
Ответить с цитированием
  #4  
Старый 06.10.2008, 17:51
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию

Не помню давно качал... Ну кто знает???
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
  #5  
Старый 06.10.2008, 17:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,051
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. А тебе они нужны? Будешь сам разбираться? Не считая того, что собственно, по параметрам все и так ясно.
2. Попробуй найди библиотеку gfx. я ее в свое время с torry качал. там много разных функций.
Ответить с цитированием
  #6  
Старый 07.10.2008, 12:40
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию povorot

Кинь Image и загрузи картинку bmp. А также кнопку. Добавь uses Math.
Код:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Math;

{$R *.dfm}

procedure povorot(bmp1: tbitmap; var bmp2: tbitmap; a: real);
...
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  b1: TBitmap;
begin
  b1:= TBitmap.Create;
  b1.Width:= Image1.Picture.Bitmap.Height; { Это для поворота на 90 град. }
  b1.Height:= Image1.Picture.Bitmap.Width; { но можно использовать другие размеры }
  povorot(Image1.Picture.Bitmap, b1, PI/2.0); { Угол может быть любым }
  Image1.Picture.Bitmap.Assign(b1);
  b1.Free;
end;

end.

Последний раз редактировалось AlexSku, 07.10.2008 в 12:43.
Ответить с цитированием
  #7  
Старый 07.10.2008, 14:52
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию

Спасибо... буду разбираться...
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter