Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi bitmap rotate beschleunigen (https://www.delphipraxis.net/2202-bitmap-rotate-beschleunigen.html)

nebukadnezzar 12. Jan 2003 11:57


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;

sakura 12. Jan 2003 13:29

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:...

nebukadnezzar 14. Jan 2003 17:06

wie kann ich den die pixel eines Bildes schnell in ein array laden?

jbg 14. Jan 2003 17:14

Dieser Artikel (englisch) dürfte deine Frage ausreichend beantworten.

nebukadnezzar 14. Jan 2003 19:54

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:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz