Timage 如何做到放大、縮小、旋轉? |
答題得分者是:hagar
|
verbose
一般會員 發表:9 回覆:5 積分:2 註冊:2002-03-13 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
小貓
一般會員 發表:14 回覆:23 積分:12 註冊:2002-07-04 發送簡訊給我 |
|
venson0704
一般會員 發表:3 回覆:3 積分:1 註冊:2002-08-29 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
年代久遠, 應該是做廢了
參考底下這篇吧:
Von: Stefan Cruysberghs
Betreff: Re: Image Rotate
Datum: Samstag, 5. Dezember 1998 19:01
Tony Nixon heeft geschreven in bericht
<36645B68.102BFAE0@eng.monash.edu.au>...
>Hi all,
>
>Could someone help me with a method of rotating a TBitmap image 180
>degrees.
>
>TIA
>
>Tony The following function I wrote rotates a bitmap 90° to the left.
function SCRotateLeftBitmap(Bitmap : TBitmap) : TBitmap; var x,y : Integer; Hoogte, Breedte : Integer; begin Breedte:=Bitmap.Width; Hoogte:=Bitmap.Height; Result := TBitmap.Create; try with Result do begin Width:=Hoogte; Height:=Breedte; for x:=0 to Breedte-1 do for y:=0 to Hoogte-1 do Canvas.Pixels[Hoogte-y-1,x]:=Bitmap.Canvas.Pixels[x,y]; end; except Result.Free; raise; end; end; [/code The next function rotates a bitmap with every angle, but I never tested it. [code] function RotateImage(Src : TBitmap; Anglo : Real) : TBitmap; var i, j, W, H : Integer; X1, X2, Y1, Y2 : Integer; C : TColor; Rx, Ry : Integer; Side3, FX, FY : Extended; SDC, DDC : Integer; begin W := Src.Width; H := Src.Height; TmpMem.Height := Round(H * 2.5); TmpMem.Width := Round(W * 2.5); SDC := Src.Canvas.Handle; DDC := TmpMem.Canvas.Handle; for i := 0 to W - 1 do for j := 0 to H - 1 do begin C := GetPixel(SDC, i, j); Side3 := Sqrt(Sqr(i) Sqr(j)); SinCos((ArcSin(I / Side3) Anglo), FX, FY); Rx := Round(FX * Side3) W; Ry := Round(FY * Side3) H; if j = 1 then begin X1 := Rx; Y1 := Ry; X2 := Rx; Y2 := Ry; end else begin if Rx < X1 then X1 := Rx; if Ry < Y1 then Y1 := Ry; if Rx > X2 then X2 := Rx; if Ry > Y2 then Y2 := Ry; end; SetPixel(DDC, Rx , Ry, C); end; Result := TmpMem; end;Greetings Stefan Cruysberghs stefancr@mail.dma.be www.bewoner.dma.be/stefancr -- Everything I say is a lie. |
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |