![]() |
bitmap rotate beschleunigen
kann man diese procedure mit der APi noch beschleunigen?
Code:
procedure Rotate(Dest,Source:TBitmap;Angle:integer);
var i,j:integer; begin with Source.Canvas.ClipRect do begin for i := Left to Right do begin for j := Top to Bottom do begin case Angle of 0: Dest.Canvas.Pixels[i,j]:= Source.Canvas.Pixels[i,j]; 90: Dest.Canvas.Pixels[j,Right-i-1]:= Source.Canvas.Pixels[i,j]; 180: Dest.Canvas.Pixels[Right-i-1,Bottom-j-1] := Source.Canvas.Pixels[i,j]; 270: Dest.Canvas.Pixels[Bottom-j-1,i] := Source.Canvas.Pixels[i,j] end; end; end; end; end; |
Schau Dir mal die Eigenschaft SCANLINE von TBitmap (oder TCanvas?) an. Da musst Du zwar mit Pointern arbeiten, aber dafür ist es um ein vielfaches (100+) schneller als Pixel[X, Y].
...:cat:... |
wie kann ich den die pixel eines Bildes schnell in ein array laden?
|
![]() |
Wie kann ich denn mittels GetDIBits die pixel eines Bitmaps in ein array einlesen
und mittels SetDIBitstoDevice auf ein DC schreiben. (ich versteh dat nicht was in der msdn steht.) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz