Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bilder überblenden (https://www.delphipraxis.net/63934-bilder-ueberblenden.html)

ShadowOfSky 24. Feb 2006 20:05


Bilder überblenden
 
Hallo Freunde des Codes,

ich habe leider bis dato noch keine großen Erfahrungen mit DelphiX, aber ich kann zu mindest schon mal ein Bild laden und darstellen :-)
Nun würde ich gerne einen Übergang programmieren, mit den 2 Bildern die ich in DXImageList geladen habe. Also zuerst zeige ich ein Bild an und dann würde ich gerne das andere Bild einblenden.
Und das möchte ich per überblenden machen.
Eigentlich hatte ich mir das so vorgestellt, das ich das zweite Bild über das erste packe aber mit einer durchsichtigbarkeit von 100% und die dann einfach bis auf 0% runterzähle und dann sollte das 2te Bild komplett sichtbar sein.

Hmm...nur weis ich leider nicht genau wie, könnt ihr mir da weiter helfen?

igel457 24. Feb 2006 20:09

Re: Bilder überblenden
 
hi

mit
Delphi-Quellcode:
dximagelist1.items[i].drawalpha
kannst du dies einfach realisieren.

ShadowOfSky 24. Feb 2006 20:24

Re: Bilder überblenden
 
Danke für die schnelle Antwort.

igel457 24. Feb 2006 20:35

Re: Bilder überblenden
 
Ich meine das ungefähr so:

Delphi-Quellcode:
var
  blending:boolean;
  blend:single;


procedure Form1.DXTimer1Timer;
begin
  dxdraw1.surface.fill(0);
  if blending then
  begin
    blend := blend + 0.01;
    dximagelist1.items[0].drawalpha(rect(0,0,dxdraw1.width,dxdraw1.height),0,trunc(blend));
    dximagelist1.items[1].drawalpha(rect(0,0,dxdraw1.width,dxdraw1.height),0,trunc(255-blend));
    if blend > 255 then blending := false;
  end;
  dxdraw1.flip;
end;

ShadowOfSky 24. Feb 2006 21:11

Re: Bilder überblenden
 
Das klappt prima, nur mußte ich noch ein DXDraw1.surface mit als ersten Parameter mit in die Klammer bei der Function nehmen.

Aber sage mal kann es sein das die Function ziemlich langsam ist?

Ich habe die beiden Bilder, plus nen flip - 5 mal hinter einander gesetzt um einen schnellen übergang zu erzeugen. Nur leider dauert der Vorgang fast 3 Sekunden. Und das ganze ist ohne eine Timervariante. Eigentlich sollte das doch dann nur so durch rauschen.

Oder hab ich was falsch gemacht dabei?

igel457 27. Feb 2006 10:48

Re: Bilder überblenden
 
DelphiX ist furchtbar lahm...

Ich würde es aber trotzdem mit dem DXTimer machen. Ich denke mit dem könnte es fast schneller gehen, wenn du Speed auf "Null" setzt. Optional kannst du dir auch UnDelphiX herunerladen, was eine Verbesserung von DelphiX ist, mit dem geht alles viel schneller...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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