![]() |
Aus bildern Film erzeugen
Hallo Leute!!
Ich arbeite gerade viel mit Canvas :duck: Un da habe ich tausende kleiner zusammenhängender Bilder vom Timage.canvas. Wie kann ich daraus jetzt einen Film erzeugen, der in einem gängen Format abspielbar ist? |
Re: Aus bildern Film erzeugen
![]() Da wird eine Komponente dafür verlinkt - vielleicht taugt sie dir ja. |
Re: Aus bildern Film erzeugen
Irgendwie erzeugt die Komponente bei mir eine Fehlermeldung: 'Inkompatible typen:'char' und 'ansichar' , und zwar in diese Zeile:
Delphi-Quellcode:
ich habe es jetzt mit // versehen, damit funktioniert es. Allerdings bin ich mir nicht ganz sicher wie ich das jetzt machen soll... hat das schon jemand gemacht?=
if AVIFileOpen(pfile, PChar(WorkFile), OF_WRITE or OF_CREATE, nil)<>AVIERR_OK then
raise Exception.Create('Konnte AVI-Datei nicht erstellen. Festplatte voll oder Datei in Benutzung?'); |
Re: Aus bildern Film erzeugen
Verwendest du, abweichend zu deinem Profil, Delphi 2009?
|
Re: Aus bildern Film erzeugen
ahh! ja stimmt! delphi 2009 architect. ich änder es mal gleich
|
Re: Aus bildern Film erzeugen
Der Standart Stringtyp in Delphi 2009 ist nun UnicodeString nicht mehr AnsiString, PChar ist PWideChar nicht mehr PAnsiChar.
Ggf musst du die Typen anpassen |
Re: Aus bildern Film erzeugen
Zitat:
|
Re: Aus bildern Film erzeugen
Du hast ja auch eine Enterprise :roll:
|
Re: Aus bildern Film erzeugen
Ich bin auch 43 und keine 17 :zwinker:
|
Re: Aus bildern Film erzeugen
Vielleicht hat er ja auch nur einen guten goldEsel :mrgreen:
|
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.
:| |
Re: Aus bildern Film erzeugen
Zitat:
|
Re: Aus bildern Film erzeugen
was heißt fehler. gibts eine anleitung zum filmbauen?
|
Re: Aus bildern Film erzeugen
Was für einen Typ hat workfile?
|
Re: Aus bildern Film erzeugen
system.string
|
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?'); |
Re: Aus bildern Film erzeugen
ok das funktioniert jetzt. Wie kann ich jetzt die Bilder zu einem Film zusammenfügen?=
|
Re: Aus bildern Film erzeugen
Ich würde sagen mit AddAVIFrame()
|
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. |
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. |
Re: Aus bildern Film erzeugen
ok, tut mir leid. eigentlich geht es nur um
Delphi-Quellcode:
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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 by Thomas Breitkreuz