AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Fullscreen SlideShow Bilder animieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fullscreen SlideShow Bilder animieren

Ein Thema von sexmagic · begonnen am 23. Nov 2006 · letzter Beitrag vom 26. Nov 2006
Antwort Antwort
sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#1

Re: Fullscreen SlideShow Bilder animieren

  Alt 25. Nov 2006, 20:47
Danke für das Beispiel, hab nun lange rumprobiert aber der Code is mir irgendwie noch zu unklar.

Bei mir siehts nun so aus aber blendbitmap und canvas.draw sind undefinierte bezeichnier, welche Komponenten muss ich dazu auf das Form ziehen.
b100 wir auch nicht erkannt.

Vielleicht ist der Code für mich als totaler Anfänger doch etwas zu schwierig, wenn du noch Zeit hast und mir das mal in meinem Code so einrichtest wies aussehen soll wäre sehr fein, sonst muss ich erstmal mit dem verschieben probieren, sieht im Moment etwas Hoffnungsvoller aus

Jedenfalls vielen Dank das du dir die Mühe gemacht hast auch noch ein Beispiel zu schrieben.

Danke

So siehts nun bei mir aus:
Delphi-Quellcode:
unit fullscreen;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, JPEG;

type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    
  private
    { Private-Deklarationen }
  public
  
    { Public-Deklarationen }
  end;

  trgb32 = record r,g,b,a: byte; end;

var
  Form2: TForm2;

implementation


uses
  main;

var
  PicCount: Integer;
  x: integer;
  oldpic, newpic: TBitmap;

type
  TRGB32Array = packed array[0..MaxInt div SizeOf(TRGB32)-1] of TRGB32;
  PRGB32Array = ^TRGB32Array;


{$R *.dfm}


procedure tform1timertimer(sender: tobject);
var buffer: TBitmap;
begin
  inc(x);
  buffer := TBitmap.create;
  buffer.assign(oldpic);
  blendbitmap(0, 0, buffer, newpic);
  canvas.draw(0,0,buffer); // Zu faul für bitblt XD
  buffer.free; // edit^^ das sollte schon sein
end;


procedure TForm2.Button1Click(Sender: TObject);
begin

if PicCount >= Form1.Memo1.Lines.Count-1 then
    PicCount := 0
  else
    Inc(PicCount);
    Image1.Picture.LoadFromFile(Form1.Edit1.Text + Form1.Memo1.Lines[PicCount]);

end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  Form2.Close;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  PicCount := 0;

  //Fullscreen erstellen
  self.Width := Screen.Width;
  self.Height := Screen.Height;

  //Bild zentrieren
  Image1.Left:= (Screen.Width - Image1.Width) div 2;
end;



procedure TForm2.FormShow(Sender: TObject);
var
  PicWidth: integer;
  PicHeight: Integer;
begin
if (Form1.Memo1.Lines[0]) = 'then
  ShowMessage('Kein Bild vorhanden.')
else
    begin
      PicWidth := Image1.Picture.Bitmap.Width;
      PicHeight := Image1.Picture.Bitmap.Height;
      Image1.Picture.LoadFromFile(Form1.Edit1.Text + Form1.Memo1.Lines[PicCount]);
    end;
end;



procedure BlendBitmap(X,Y: integer; const Dest,Bitmap: TBitmap; alpha: integer);
var xx,yy : integer;
    DestLine, BitLine: pRGB32Array;
begin
  bitmap.PixelFormat:=pf32Bit;
  dest.PixelFormat:=pf32Bit;

  for yy := 0 to Bitmap.Height - 1 do
    begin
      BitLine := Bitmap.ScanLine[yy];
      DestLine := Dest.Scanline[yy+y];
      for xx := 0 to Bitmap.Width - 1 do
      begin
        DestLine[xx+x].r:=round((BitLine[xx].r/100*(100-Alpha))+
          (DestLine[xx+x].r/100*Alpha));
        DestLine[xx+x].g:=round((BitLine[xx].g/100*(100-Alpha))+
          (DestLine[xx+x].g/100*Alpha));
        DestLine[xx+x].b:=round((BitLine[xx].b100*(100-Alpha))+
          (DestLine[xx+x].b/100*Alpha));
      end;
    end;
end;

end.
  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 12:37 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