AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Raw-Bilder anzeigen

Ein Thema von Theseus · begonnen am 1. Okt 2011 · letzter Beitrag vom 1. Okt 2011
Antwort Antwort
Theseus

Registriert seit: 21. Jun 2011
18 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

Raw-Bilder anzeigen

  Alt 1. Okt 2011, 10:27
Ich möchte gern RAW-Bilder anzeigen und bearbeiten. Seit Delphi 10 soll das möglich sein, wenn man das Format registriert. Ich arbeite mit Delphi XE (Win 7), aber es funktioniert nicht (CR2-Dateien von Canon EOS 550d, auch nach Umwandlung in DNG-Datei - wohl aber mit bmp-, jpg-, tif-, gif- und png-Bildern). Ich bekomme die Meldung 'ungültiges Bild' Irfanview kann die Bilder öffnen. Muss ich noch weitere Deklarationen einfügen? Hier mein Programm - Danke für jede Hilfe, Theseus

Delphi-Quellcode:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtDlgs, ExtCtrls, pngimage, jpeg, gifimg;
type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
    if OpenDialog1.execute then
    begin
      if pos('.CR2', uppercase(openDialog1.FileName)) > 0 then
        Image1.Picture.RegisterFileFormat('CR2','CR2 Format',TWICImage)
      else if pos('.DNG', uppercase(openDialog1.FileName)) > 0 then
        Image1.Picture.RegisterFileFormat('DNG','DNG Format',TWICImage);
      // for bmp, jpg, gif, tif, png do nothing but simply
      Image1.Picture.LoadFromFile(openDialog1.FileName);
    end;
end;
end.

Geändert von Theseus ( 1. Okt 2011 um 13:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#2

AW: Raw-Bilder anzeigen

  Alt 1. Okt 2011, 10:43
Zitat:
Image1.Picture.RegisterFileFormat('CR2', 'CR2 Format', TWICImage)
Ja, damit kann man ein Format bei TPicture registrieren, welches dann über LoadFromFile und SaveToFile genutzt werden kann.

Die Frage ist aber, ob TWICImage überhaupt dieses Format kennt.

Bildformate mit diese Dateiendung müssen schon von der angegebenen TGrafic-Komponente unterstützt werden, damit es funktioniert.


Und standardmäßig sieht es IMHO erstmal nicht danach aus.
Delphi-Quellcode:
{ TWICImage encapsulates the Microsoft Windows Imaging Component, allowing
  loading image formats that have been registered through WIC. Supports:
  BMP, GIF, ICO, JPEG, PNG, TIFF, and Windows Media Photo.
  Requires Windows XP SP2 with .NET 3.0.}


TWICImageFormat = (wifBmp, wifPng, wifJpeg, wifGif, wifTiff, wifWMPhoto, wifOther);

Es reicht übrigens aus, sowas nur einmal zu registrieren ... vorzugsweise bei Programmstart (z.B. in OnCreate der Form)
Delphi-Quellcode:
TPicture.RegisterFileFormat('CR2', 'CR2 Format', T...);
TPicture.RegisterFileFormat('DNG', 'DNG Format', T...);
Und dann kann man dieses auch im Delphi-Referenz durchsuchenTOpenPictureDialog nutzen.


PS: Bitte mach noch die [DELPHI]-Tags um deinen Quellcode drum.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Okt 2011 um 10:51 Uhr)
  Mit Zitat antworten Zitat
Theseus

Registriert seit: 21. Jun 2011
18 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#3

AW: Raw-Bilder anzeigen

  Alt 1. Okt 2011, 13:50
Vielen Dank für die Antwort!

Den Hinweis auf die Möglichkeit RAW-Bilder zu öffnen hatte ich aus einem Blog von 2009 http://blogs.embarcadero.com/matthia...09/12/15/38566

Zitat:
Die Frage ist aber, ob TWICImage überhaupt dieses Format kennt.
Wie könnte ich das feststellen? Es lassen sich nämlich auch Fantasie-Formate ohne Fehlermeldung registrieren.

Dank und besten Gruß, Theseus
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Raw-Bilder anzeigen

  Alt 1. Okt 2011, 13:58
Wie könnte ich das feststellen?
Steht doch im Beitrag:
Zitat:
Ein entsprechender Filter des RAW-Format Herstellers
DNG, NEF, CR2 (EOS SLR Camera Systems / Digital EOS Cameras / Canon RAW Codec Software)
Es lassen sich nämlich auch Fantasie-Formate ohne Fehlermeldung registrieren.
Die Registrierung macht ja nix weiter als "Wenn eine Datei mit Extension "xyz" gewählt ist dann lade die angegeben Klasse.
Ob diese Klasse wirklich das Dateiformat hinter der Extension versteht wird erst klar wenn man eine entsprechende Datei läd.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#5

AW: Raw-Bilder anzeigen

  Alt 1. Okt 2011, 14:43
Feststellen kann man es ganz einfach.

Du nimmst die Bildkommponente erstmal direkt und versuchst ein Bild reinsuladen.
Zum Test kannst du dieses dann via Delphi-Referenz durchsuchenTCanvas.Draw in ein TBitmap kopieren, abspeichern und nachsehn, ob das Bild noch da ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Theseus

Registriert seit: 21. Jun 2011
18 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#6

AW: Raw-Bilder anzeigen

  Alt 1. Okt 2011, 15:47
Vielen Dank für die Hilfe - jetzt habe ich eine Teillösung gefunden:

Die Tatsache, dass ich mit Irfanview sowohl DNG- als auch CR2-Bilder öffnen konnte, hatte mich zu der irrigen Annahme verleitet, die erforderlichen Codecs wären auf meinem System bereits verfügbar.

Nun habe ich mir von Adobe das DNG-Codec heruntergeladen und kann jetzt DNG-Dateien laden.

Mit CR2 ging es leider nicht so, da das bei Canon verfügbare Codec nicht auf 64-Bit Systemen läuft
  Mit Zitat antworten Zitat
Commander Tom

Registriert seit: 9. Dez 2005
Ort: Ettlingen
64 Beiträge
 
Delphi 12 Athens
 
#7

AW: Raw-Bilder anzeigen

  Alt 1. Okt 2011, 22:52
Es gibt einen kostenplichtigen CR2-Codec für Windows 7 64-Bit: http://www.ardfry.com/cr2-codec/ (19,95 $) oder http://www.fastpictureviewer.com/codecs/ (14,95 $). Ob es allerdings damit funktioniert, weiß ich nicht. Beide Codecs liegen aber als 15-Tage Trial vor, so kannst Du es einfach mal ausprobieren.
Commander Tom
  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 21:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz