AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie ruft man POVRAY aus einem Programm heraus auf ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie ruft man POVRAY aus einem Programm heraus auf ?

Ein Thema von em-sigma · begonnen am 7. Dez 2004 · letzter Beitrag vom 2. Dez 2021
Antwort Antwort
em-sigma

Registriert seit: 8. Jul 2004
40 Beiträge
 
Delphi 12 Athens
 
#1

Re: Wie ruft man POVRAY aus einem Programm heraus auf ?

  Alt 30. Jul 2007, 08:32
Hallo Matthias,

ich weiß ja nicht, ob du mit den bisherigen Antworten was anfangen konntest - ich konnte es jedenfalls nicht.

Glücklicherweise habe ich dann doch noch selbst eine Lösung gefunden, die für kleine Bilder ganz gut geeignet ist.

Dazu besorgst du dir aus dem Internet zunächst einmal das MegaPOV-Paket. Da ist eine Kommando-Zeilen-Version dabei, die still und leise im Hintergrund arbeitet. MegaPOV ist mit POVRay fast identisch, enthält nur zusätzliche Features.

Der Aufruf geschieht dann wie folgt

Delphi-Quellcode:
var
   StartupInfo:TStartUpInfo;
   ProcessInfo:TProcessInformation;
begin
   ...
   FillChar(StartUpInfo,SizeOf(TStartUpInfo),0);
   StartUpInfo.cb:=SizeOf(TStartUpInfo);
   StartUpInfo.dwFlags:=STARTF_USESHOWWINDOW;
   StartUpInfo.wShowWindow:=SW_HIDE;
   If CreateProcess(nil,
                    PChar('megapov +I'+name+'.pov +W'+IntToStr(w)+' +H'+IntToStr(h)+' +A0.3 -D'),
                    nil,
                    nil,
                    false,
                    NORMAL_PRIORITY_CLASS,
                    nil,
                    nil,
                    StartUpInfo,
                    ProcessInfo) then begin
       WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
   end;
   TGAImage.LoadFromFile(name+'.tga');
   ...
end;
Sieht nicht schön aus, funktioniert aber. 'name' ist der Name der gewünschten Datei (ohne Extension). 'w' ist die Breite und 'h' die Höhe. MegaPOV erzeugt TGA-Dateien, deshalb brauchst du noch eine Unit zum Einlesen von TGA-Dateien.

Viel Spaß beim Rendern, em-sigma
Allen ist das Denken erlaubt. Vielen bleibt es erspart. (Curt Goetz)
  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 05:11 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