Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

Как повернуть картинку на любой угол?   Найти похожие ветки 

 
Shadowofman ©   (2003-05-19 13:33) [0]

Приветствую всех!

Подскажите, пожалуйста, возможно ли вообще как-нибудь повернуть картинку JPEG, находящуюся на форме, на какой-нибудь угол, например, градуса на 3-4 относительно ее оси?

Заранее благодарен.


 
MBo ©   (2003-05-19 13:37) [1]

преобразуй в битмап и выполни поворот - в NT-семействе SetWorldTransform, в Вин9X - вручную поточечно


 
Леприкон ©   (2003-05-19 14:01) [2]

Вот пример для BitMap для NT.

var bm:TBitMap;
xf:XFORM;
Angle:real;
begin
bm:=TBitMap.Create;
bm.LoadFromFile("Путь к файлу");

Angle:=20;//угол поворота в градусах

xf.eM11:=cos(degtorad(Angle)); xf.eM12:=-sin(degtorad(Angle));
xf.eM21:=sin(degtorad(Angle)); xf.eM22:=cos(degtorad(Angle));

SetGraphicsMode(Form1.Canvas.Handle, GM_ADVANCED);
ModifyWorldTransform(Form1.Canvas.Handle,xf,MWT_RIGHTMULTIPLY);
( Form1.Canvas.Handle,0,0,bm.Width,bm.Height,bm.Canvas.Handle,0,0,MERGECOPY) Вот пример для BitMap для NT.

var bm:TBitMap;
xf:XFORM;
Angle:real;
begin
bm:=TBitMap.Create;
bm.LoadFromFile("Путь к файлу");

Angle:=20;//угол поворота в градусах

xf.eM11:=cos(degtorad(Angle)); xf.eM12:=-sin(degtorad(Angle));
xf.eM21:=sin(degtorad(Angle)); xf.eM22:=cos(degtorad(Angle));

SetGraphicsMode(Form1.Canvas.Handle, GM_ADVANCED);
ModifyWorldTransform(Form1.Canvas.Handle,xf,MWT_RIGHTMULTIPLY);
BitBlt(Form1.Canvas.Handle,0,0,bm.Width,bm.Height,bm.Canvas.Handle,0,0,MERGECOPY);

bm.Free;

end;

___________
Спасибо MBo


 
Shadowofman ©   (2003-05-19 14:20) [3]

В NT все понятно. А как-быть в Win9x?


 
MBo ©   (2003-05-19 14:54) [4]

XNew:=X*cos(fi)+Y*sin(fi)+X0
YNew:=-X*sin(fi)+Y*cos(fi)+Y0

Чтобы не было дырок, надо X и Y старой картинки находить для каждой новой точки (Xnew,YNew)


 
Delphi5.01 ©   (2003-05-19 21:54) [5]

a ia ispolzoval
PlgBlt(Bitmap.Canvas.Handle,a,
SRCBitMap.Canvas.Handle,0,0,BitMap.Width,BitMap.Height,
Bitmap.MaskHandle,0,0);
gde a eto masiv 3 tochek paralelograma, pervaia-levi verxni ugol, vtoraia-pravi verxni, a tretaia-nijni levi.
no vsa taje problema rabotaet tolko v operacionkax na baze NT.


 
Плохой человек   (2003-05-19 22:36) [6]

http://www.efg2.com



Страницы: 1 вся ветка

Текущий архив: 2003.09.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
14-58855
panov
2003-08-29 22:29
2003.09.18
Вопрос по настройке DNS и SMTP.


1-58712
msdsn
2003-09-08 09:29
2003.09.18
Нажатие клавишь а форме


1-58654
SkullNet
2003-09-05 01:45
2003.09.18
OnIdle в Delphi7 ?


1-58656
den777
2003-09-04 11:57
2003.09.18
Есть ли в DELPHI настройки по сохранению старых версий файлов


1-58610
Ragazor
2003-09-08 16:42
2003.09.18
Как програмится символ стрелка вниз, вверх....