AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Image fade in?

Ein Thema von Jonas · begonnen am 14. Dez 2005 · letzter Beitrag vom 14. Dez 2005
Antwort Antwort
Jonas

Registriert seit: 5. Feb 2005
266 Beiträge
 
Delphi 2007 Professional
 
#1

Image fade in?

  Alt 14. Dez 2005, 18:52
Hi....das man eine Form mit Alphablend und Timer einblenden lassen kann ist ja bekannt....hab mich etwas im internet durch gesucht und wollte das gleiche mit einem geladenen image machen....hab jedoch keine lösung gefunden....was ich gefunden hab sind wege wie man ein image zwar einfaden lassen kann, jedoch wird das image dann erst geladen also von außen....drumm wollt ich fragen wie man ein image was mit Timage halt auf meiner form liegt in einer bestimmten zeit einfaden lassen kann?
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Image fade in?

  Alt 14. Dez 2005, 19:38
Zitat von Jonas:
was ich gefunden hab sind wege wie man ein image zwar einfaden lassen kann, jedoch wird das image dann erst geladen also von außen....drumm wollt ich fragen wie man ein image was mit Timage halt auf meiner form liegt in einer bestimmten zeit einfaden lassen kann?
Hi,
was meinst du denn genau? Ich meine hier insbesondere was du unter "dann erst geladen von außen" verstehst. Du solltest das Image natürlich mindestens einmal laden. Dann suchst du einfach mal nach Transparenz und Bitmap und das wendest du auf das geladene Bitmap an. Mittels eines Timers senkst du die Transparenz immer weiter ab und mit z.B. BitBlt kannst du die veränderte Bitmap immer wieder zeichnen (im OnTimer-Ereignis).

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Jonas

Registriert seit: 5. Feb 2005
266 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Image fade in?

  Alt 14. Dez 2005, 19:50
Delphi-Quellcode:
procedure FadeIn(ImageFileName: TFileName);
var
  Bitmap, BaseBitmap: TBitmap;
  Row, BaseRow: PRGBTripleArray;
  x, y, step: integer;
begin
  // Bitmaps vorbereiten / Preparing the Bitmap //
  Bitmap := TBitmap.Create;
  try
    Bitmap.PixelFormat := pf32bit; // oder pf24bit / or pf24bit //
    Bitmap.LoadFromFile(ImageFileName);
    BaseBitmap := TBitmap.Create;
    try
      BaseBitmap.PixelFormat := pf32bit;
      BaseBitmap.Assign(Bitmap);
      // Fading //
      for step := 0 to 32 do
      begin
        for y := 0 to (Bitmap.Height - 1) do
        begin
          BaseRow := BaseBitmap.Scanline[y];
          // Farben vom Endbild holen / Getting colors from final image //
          Row := Bitmap.Scanline[y];
          // Farben vom aktuellen Bild / Colors from the image as it is now //
          for x := 0 to (Bitmap.Width - 1) do
          begin
            Row[x].rgbtRed := (step * BaseRow[x].rgbtRed) shr 5;
            Row[x].rgbtGreen := (step * BaseRow[x].rgbtGreen) shr 5; // Fading //
            Row[x].rgbtBlue := (step * BaseRow[x].rgbtBlue) shr 5;
          end;
        end;
        Form1.Canvas.Draw(0, 0, Bitmap); // neues Bild ausgeben / Output new image //
        InvalidateRect(Form1.Handle, nil, False);
        // Fenster neu zeichnen / Redraw window //
        RedrawWindow(Form1.Handle, nil, 0, RDW_UPDATENOW);
      end;
    finally
      BaseBitmap.Free;
    end;
  finally
    Bitmap.Free;
  end;
end;
Quelle

Das mein ich damit. Aber ich habe ja mein image bereits in meiner Anwendung.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:29 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