|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#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
|
|||
|
|||
тут все есть
дык скачай заного, че непомниш откуда качал?
|
#3
|
|||
|
|||
http://www.helloworld.ru/texts/comp/.../dll/index.htm
тут все про ДЛЛ в делфи! |
#4
|
|||
|
|||
Не помню давно качал... Ну кто знает???
Я ни в чем никогда не уверен... И в этом тоже... |
#5
|
|||
|
|||
1. А тебе они нужны? Будешь сам разбираться? Не считая того, что собственно, по параметрам все и так ясно.
2. Попробуй найди библиотеку gfx. я ее в свое время с torry качал. там много разных функций. |
#6
|
|||
|
|||
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
|
|||
|
|||
Спасибо... буду разбираться...
Я ни в чем никогда не уверен... И в этом тоже... |