openEXR laden
openEXR laden
Hallo,
hoffe wie immer im richtigen Unterforum zu posten.
Wie kann ich denn am einfachsten openEXR-files laden? Tif,bmp,png etc gehen schon nur mit exr habe ich Probleme.
Gibt es eine Lib oder sowas, die mir da helfen könnte?
hoffe wie immer im richtigen Unterforum zu posten.
Wie kann ich denn am einfachsten openEXR-files laden? Tif,bmp,png etc gehen schon nur mit exr habe ich Probleme.
Gibt es eine Lib oder sowas, die mir da helfen könnte?
Re: openEXR laden
Ich würde da ImageMagick zum Umwandeln nehmen:
S.a: http://wiki.freepascal.org/Executing_Ex ... rograms/de
Code: Alles auswählen
convert demo.exr demo.png
Re: openEXR laden
Danke für die Antwort!
Ich glaube, dass es zu lange dauert die Bilder erst zu konvertieren, weil es immer 8 sind und schon mal paar MB haben können.
Dann muß ich wohl weiter auf die Suche nach ner Lib oder ähnliches gehen. Aber danke nochmals !
Ich glaube, dass es zu lange dauert die Bilder erst zu konvertieren, weil es immer 8 sind und schon mal paar MB haben können.
Dann muß ich wohl weiter auf die Suche nach ner Lib oder ähnliches gehen. Aber danke nochmals !
Re: openEXR laden
FreeImage (http://freeimage.sourceforge.net/index.html) kann exr. Gibt es auch für Delphi und sollte wahrscheinlich auch für Lazarus funtionieren, zumindest im DELPHI-Modus.
Re: openEXR laden
Naja, du fragtest: "Wie kann ich denn am einfachsten openEXR-files laden?"stevensen hat geschrieben: Ich glaube, dass es zu lange dauert die Bilder erst zu konvertieren, weil es immer 8 sind und schon mal paar MB haben können.
Dann muß ich wohl weiter auf die Suche nach ner Lib oder ähnliches gehen. Aber danke nochmals !
Alles andere ist ziemlich sicher nicht besonders einfach.

Re: openEXR laden
@ theo
Aber genau genommen ist ist dein Tipp auch kein Laden einer Exr-Datei.
Die Freeimage-Lib hatte ich auch schonmal versucht, hab sie aber nicht zum Laufen gebracht, was aber sicher an meiner sporadischen Benutzung von Lazarus liegt.
Ein Tutorial wie man diese Lib richtig installiert oder von Delphi zu Lazarus konvertiert wäre sehr hilfreich für mich. Außerdem muß ich wohl auch dann noch die 32GB installieren.
Villeicht versuch ich das nochmal.
Weiß nicht wie es jetzt gemeint war vorher konvertieren und dann das png laden, oder den externen Converter vom Programm aus aufrufen und das png laden.theo hat geschrieben:Ich würde da ImageMagick zum Umwandeln nehmen:
convert demo.exr demo.png
Aber genau genommen ist ist dein Tipp auch kein Laden einer Exr-Datei.

Die Freeimage-Lib hatte ich auch schonmal versucht, hab sie aber nicht zum Laufen gebracht, was aber sicher an meiner sporadischen Benutzung von Lazarus liegt.
Ein Tutorial wie man diese Lib richtig installiert oder von Delphi zu Lazarus konvertiert wäre sehr hilfreich für mich. Außerdem muß ich wohl auch dann noch die 32GB installieren.
Villeicht versuch ich das nochmal.
Re: openEXR laden
Letzteres natürlich. (Deshalb auch der Link zu "Executing External Programs")stevensen hat geschrieben: Weiß nicht wie es jetzt gemeint war vorher konvertieren und dann das png laden, oder den externen Converter vom Programm aus aufrufen und das png laden.
Ich weiß ja nicht, was du erreichen willst.stevensen hat geschrieben: Aber genau genommen ist ist dein Tipp auch kein Laden einer Exr-Datei.![]()
Wenn ich einfach das Bild in der *.exr Datei in meinem Programm anzeigen möchte, würde ich es so machen.
Wenn du "mehr" benötigst, dann wünsche ich dir viel Erfolg und Spaß.

Re: openEXR laden
Du musst gar nichts installieren. Ich nehme an, du bist auf WIndows: Kopiere die freeimage.dll in das Verzeichnis mit deiner Exe-Datei. Kopiere die Dateien aus (freeimage)\Wrapper\Delphi\src in dein Projektverzeichnis (oder in ein anderes, falls du FreeImage öfter verwenden willst - trage dieses Verzeichnis dann im Suchpfad von Lazarus ein). Die Unit "FreeBitmap" benötigt unter Lazarus die Direktive "{$MODE DELPHI}" - trage das im Kopf der Unit ein.Außerdem muß ich wohl auch dann noch die 32GB installieren.
Anschließend habe ich mir folgendes Mini-Projekt zusammengeklickt:
Formular mit einem TImage, einem Button und einem FileOpenDialog. Der Button hat folgenden OnClick-Code:
Code: Alles auswählen
uses
... FreeBitmap ...
procedure TForm1.Button1Click(Sender: TObject);
var
winbmp: TFreeWinBitmap;
stream: TStream;
begin
with OpenDialog1 do begin
if Execute then begin
winbmp := TFreeWinBitmap.Create(FIT_BITMAP); // Hier muss bei EXR evtl etwas anderes eingetragen werden --> siehe FreeImage docs
try
stream := TFileStream.Create(Filename, fmOpenRead);
try
winbmp.LoadFromStream(stream);
finally
stream.Free;
end;
Image1.Picture.Bitmap.Handle := winbmp.CopyToBitmapH;
finally
winbmp.Free;
end;
end;
end;
end;
Re: openEXR laden
jau, jetzt gehts !!! Vielen Dank an alle
@ wp_xyz
Vielen Dank im Speziellen.
Dein Code funkioniert! Mußte nur noch
uses
... FreeImage
dabei machen, damit FIT_BITMAP gefunden wird. Jpgs, etc wurden direkt geladen und angezeigt.
Die EXRs hackten erst, sie wurden nur geladen aber nicht im Timage angezeigt, die müssen erst konvertiert werden.
Das habe ich hiermit gemacht bevor ich es zur Picturebox (Image1)schicke:
winbmp.ToneMapping(FITMO_DRAGO03,0,0);
Das dabei erstmal Daten(Bit-Tiefe) verloren gehen ist momentan nicht tragisch.
Ob das der beste Weg ist weiß ich nicht aber er funktioniert schonmal.
Also vielen Dank.
@ wp_xyz
Vielen Dank im Speziellen.
Dein Code funkioniert! Mußte nur noch
uses
... FreeImage
dabei machen, damit FIT_BITMAP gefunden wird. Jpgs, etc wurden direkt geladen und angezeigt.
Die EXRs hackten erst, sie wurden nur geladen aber nicht im Timage angezeigt, die müssen erst konvertiert werden.
Das habe ich hiermit gemacht bevor ich es zur Picturebox (Image1)schicke:
winbmp.ToneMapping(FITMO_DRAGO03,0,0);
Das dabei erstmal Daten(Bit-Tiefe) verloren gehen ist momentan nicht tragisch.
Ob das der beste Weg ist weiß ich nicht aber er funktioniert schonmal.

Also vielen Dank.