DelphiͼÏñ´¦Àí
ͼÏñÐýת£¬ÊÇÖ¸°´ÕÕ¸ø¶¨µÄ½Ç¶È£¬¼ÆËã³öͼÏñÿ¸öÏñËØ×ø±êµãÔÚÐÂͼÏñÉϵÄ×ø±êλÖ㬴ӶøÊµÏÖÕû¸öͼÏñ×ø±ê±ä»»µÄͼÏñ´¦ÀíÊֶΡ£ÆäÏñËØ×ø±êµÄ±ä»»¹«Ê½Îª£º
(1)¡¢x' = x * cos(angle) + y * sin(andle)
y' = x * cos(andle) - y * sin(angle)
¹«Ê½ÖУ¬x'£¬y'Ϊ±ä»»ºóµÄÏñËØ×ø±êµã£¬x£¬yΪ±ä»»Ç°ÏñËØ×ø±êµã£¬angleΪÐýת½Ç¶È¡£
µ«ÊÇ£¬°´ÕÕÉÏÃæµÄ¹«Ê½ÐýתͼÏñ£¬»á³öÏÖ¶à¸öÔͼÏñÏñËØµã¶ÔÓ¦ÐÂͼÏñͬһ¸öµãµÄÎÊÌ⣬Õâ²»½ö»á¶àÏûºÄͼÏñÐýת´¦ÀíµÄʱ¼ä£¬¶øÇÒÒ²»áʹÐýתºóµÄͼÏñ²úÉú²»±ØÒªµÄÊ§Õæ£¬Èç¹ûÊÇ32λ´øAlphaͨµÀÏñËØ¸ñʽµÄͼÏñ£¬¸ü»áÒò´ËÔì³ÉͼÏñµÄ»ìÂÒ£¬ËùÒÔÔÚʵ¼ÊµÄͼÏñÐýת´¦Àí´úÂëÖУ¬ÊÇÒÔÄ¿±êͼ£¨ÐýתºóµÄͼÏñ£©µÄÏñËØ×ø±êµã£¬Öðµã·´ÍÆÔͼÏñËØµÄλÖã¬ÕâÑù£¬Ä¿±êͼµÄ¸÷¸öÏñËØµã¼È²»»áÖØ¸´£¬Ò²²»»áÒÅ©¡£Æä¼ÆË㹫ʽΪ£º
(2)¡¢x = x' * cos(angle) - y * sin(angle)
y = y' * cos(angle) + y * sin(angle)
ÏÂÃæÊÇDelphiͼÏñÐýת´¦ÀíµÄ´úÂ룺
¹ý³Ì¶¨Ò壺
// »ñÈ¡Width * HeightͼÏñÐýתAngleʱ£¬ÍêÈ«°üº¬Í¼ÏñËùÐè³ß´ç
function GetRotateSize(Width, Height: Integer; Angle: Single): TSize;
// ÐýתͼÏñ£¬OffsetXºÍOffsetY·Ö±ðΪͼÏñÆ«ÒÆÁ¿£¬Îª0ʱSourceÓëDest×óÉÏ±ß¶ÔÆë£¬
// AlphaΪ˳ʱÕëÐýת½Ç¶È£¬IpModeΪ²åÖµ·½Ê½
procedure ImageRotate(Dest: TImageData; OffsetX, OffsetY: Integer;
const Source: TImageData; Angle: Single; IpMode: TInterpolateMode = imDefault); overload;
// ͼÏñ×ÔÉíÐýת£¬ÖÐÐĵãÔÚͼÏñµÄÖÐÑë
procedure ImageRotate(Data: TImageData; Angle: Single;
ColorBackground: LongWord = 0; IpMode: TInterpolateMode = imDefault); overload;
// °´È±Ê¡·½Ê½ÐýתͼÏñ£¨SourceÓëDest×óÉÏ±ß¶ÔÆë£©¡£
procedure ImageRotate(Dest: TImageData; const Source: TImageData;
Angle: Single; IpMode: TInterpolateMode = imDefault); overload;
// TGraphic¶ÔÏóÐýתµ½Dest
procedure ImageRotate(Dest: TImageData;
const Source: TGraphic; Angle: Single; IpMode: TInterpolateM
Ïà¹ØÎĵµ£º
ÖÆ×÷Ô²½Ç¾ØÐεĴ°Ì壺
01.procedure TPortForm.FormCreate(Sender: Tobject);
02.var hr :thandle;
03.begin
04.hr:=createroundrectrgn(0,0,width,height,20,20);
05.setwindowrgn(handle,hr,true);
06.end;
Èç¹û²»Òª´°ÌåÍâ¿ò£¬ÔòʹÓãº
01.procedure TPortForm.FormCreate(Sender: Tobject);
02.var hr :thandl ......
ǰÑÔ
¾¡ÈýÄêÀ´£¬±¾ÈËÂ½ÐøÐ´ÁËÁùÊ®¶àƪBOLOÎÄÕ£¬ÆäÖоø´ó²¿·ÖÊÇÓйØÍ¼Ïñ´¦ÀíµÄ£¬Òò´Ë£¬ÓÐÈËÏ·³ÆÎÒΪͼÏñ´¦Àíר¼Ò£¨»òGDI+ר¼Ò£©£¬´ËÏ·³Æµ±È»ÊǶÔÎÒµÄÔÞÑµ«ÎÒ×Ô¼ºÈ´¾õµÃÂÔº¬Ò»Ë¿Ë¿±áÒ壬¼´³ýÁËͼÏñ´¦Àí£¬±ðµÄ·½Ã棨ÈçÍøÂç¡¢Êý¾Ý¿âµÈ£©¶¼²»Õ¦µÄ£¬ÊÂʵҲȷʵÈç´Ë¡£
ÎÒÊÇÒ»Ãû»ú¹Ø¹¤ ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;
t ......
·½·¨Ò»£º
¿Ø¼þÀà½Ð×ö TABC,ÎļþÃû½Ð abc.pas ÄÇôн¨Á¢Ò»¸öÎļþ½Ð
abc.rc
ÀïÃæÄÚÈÝÊÇ
TABC Bitmap icon.bmp
icon.bmp ¾ÍÊÇͼƬÎļþÃû£¬²»Òª³¬¹ý256É«£¬24x24
È»ºóÔÚÃüÁîÐÐÏÂÖ´ÐÐ brcc32 abc.rc¾Í»áÉú³É abc.res
¸ÄÃûΪ abc.dcr
´ò¿ªÄã¿Ø¼þµÄ dpkÎļþ£¬ ¼ÓÉÏ {$R ABC.DCR}
ÖØÐ±àÒë¾Í¿ÉÒÔÁË¡£
±ã½Ý·½ ......
DelphiµÄTCanvasÒÔ¼°ÅÉÉúÀàÌṩÁËÏÔʾTGraphicͼÏñµÄ·½·¨Draw£¬ÆäʵÕâ¸ö·½·¨±¾Éí²¢Ã»ÓÐÏÔʾͼÏñµÄ¹¦ÄÜ£¬Ö»ÊÇ·´¹ýÀ´µ÷ÓÃÁËÒ»ÏÂTGraphicµÄDraw·½·¨¡£TGraphic±¾ÉíÊǸö³éÏóÀ࣬ÆäDraw·½·¨Ò²ÊǸö´¿Ðé·½·¨£¬ËùÒÔTGraphicµÄËùÓÐÅÉÉúÀà±ØÐëÌṩһ¸ö¾ßÌåµÄDraw·½·¨¡£TGraphicµÄÖ÷ÒªÅÉÉúÀàTBitmapÒ²ÓÐÒ»¸öDraw·½· ......