Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Aus bildern Film erzeugen (https://www.delphipraxis.net/127230-aus-bildern-film-erzeugen.html)

vsilverlord 10. Jan 2009 14:47

Re: Aus bildern Film erzeugen
 
also gut, ich habs angepasst. Was nun? gibts irgendeine Anleitung, wie man das macht? ich seh nur tausend Funktionen und variablen. Also ich füge CreateAVI zu uses hinzu. Jetzt muss ich irgendwie mit einer Funktion die Bilder zu einem Avi zusammenbauen können? Oder muss ich vorher die Canvas-Bilder im Bitmap unwandeln? Aaach, ich bin soo doof.
:|

mkinzler 10. Jan 2009 14:52

Re: Aus bildern Film erzeugen
 
Zitat:

Aaach, ich bin soo doof.
Hast du den Fehler gefunden?

vsilverlord 10. Jan 2009 15:00

Re: Aus bildern Film erzeugen
 
was heißt fehler. gibts eine anleitung zum filmbauen?

mkinzler 10. Jan 2009 15:02

Re: Aus bildern Film erzeugen
 
Was für einen Typ hat workfile?

vsilverlord 10. Jan 2009 15:05

Re: Aus bildern Film erzeugen
 
system.string

mkinzler 10. Jan 2009 15:08

Re: Aus bildern Film erzeugen
 
Die Funktion erwartet aber einen Zeiger auf AnsiString (PAnsiChar) ->
Delphi-Quellcode:
   worFile: AnsiString;
...
if AVIFileOpen(pfile, PAnsiChar(WorkFile), OF_WRITE or OF_CREATE, nil)<>AVIERR_OK then
   raise Exception.Create('Konnte AVI-Datei nicht erstellen. Festplatte voll oder Datei in Benutzung?');

vsilverlord 10. Jan 2009 15:12

Re: Aus bildern Film erzeugen
 
ok das funktioniert jetzt. Wie kann ich jetzt die Bilder zu einem Film zusammenfügen?=

mkinzler 10. Jan 2009 15:15

Re: Aus bildern Film erzeugen
 
Ich würde sagen mit AddAVIFrame()

vsilverlord 10. Jan 2009 15:37

Re: Aus bildern Film erzeugen
 
also ich hab hier jetzt mal einen code. Wie mach ich tcanvas zu tgraphic?
Delphi-Quellcode:
unit main;

interface

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

type

  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button1Click(Sender: TObject);
  private
    function machpunkt(a,b:integer):tpoint;
 
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  punkt:tpoint;
  allepunkte:array of tpoint;
  allebildchen:array of tcanvas;
  film:tavicreator;

implementation

{$R *.dfm}






function tform1.machpunkt(a: Integer; b: Integer):tpoint;
begin
result.X:=a;
result.Y:=b;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
film:=tavicreator.Create(self);
for i := 0 to length(allebildchen) - 1 do
 begin
   film.AddAVIFrame(allebildchen[i]);
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
punkt:=machpunkt(250,100);
setlength(allepunkte,1);
setlength(allebildchen,1);
allepunkte[0]:=machpunkt(250,100);
image1.Canvas.Ellipse(250,100,10,10);
allebildchen[0]:=image1.Canvas;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: Integer;
begin
setlength(allepunkte,length(allepunkte)+1);
setlength(allebildchen,length(allebildchen)+1);
image1.Canvas.Rectangle(0,0,image1.Width,image1.Height);
repeat
 begin
   punkt.X:=punkt.X+random(3)-1;
   punkt.Y:=punkt.y+random(3)-1;
 end
until (punkt.X<image1.Height) and (punkt.Y<image1.Height)and (punkt.X>0) and (punkt.Y>0);
allepunkte[length(allepunkte)-1]:=machpunkt(punkt.X,punkt.Y);
image1.Canvas.MoveTo(allepunkte[0].x,allepunkte[0].y);
for i := 1 to length(allepunkte) - 1 do
 begin
  image1.Canvas.LineTo(allepunkte[i-1].X,allepunkte[i-1].y)
 end;
image1.Canvas.Ellipse(punkt.X,punkt.Y,punkt.X+10,punkt.Y+10);
allebildchen[length(allebildchen)-1]:=image1.Canvas
end;

end.

turboPASCAL 10. Jan 2009 15:52

Re: Aus bildern Film erzeugen
 
Ich möchte dich bitten ein wenig Zeit zur Quelltextformatierung aufzubringen.
Solche Sachen wie du sie hier Vorstellst kann man (sau) schlecht lesen.
Zudem ist solch eine Formatierung nicht sonderlich behilflich wenn es um die Fehlerbehebung geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr.
Seite 2 von 3     12 3      

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