Frage

Kennt jemand einigen Beispielcode, der zeigt, wie Delphi 2010 RAW-Dateien mit seinem neuen COM-Schnittstelle WIC lesen kann?

Ich möchte Canon RAW-Bilder lesen und dann Zugriff auf bestimmte Pixel ...

War es hilfreich?

Lösung

Dies ist die einfachste Nutzung:

procedure TForm116.Button1Click(Sender: TObject);
var
  WIC: TWICImage;
begin
  WIC := TWICImage.Create;
  try
    WIC.LoadFromFile('MyFilename.raw');
    Image1.Picture.Graphic.Assign(WIC);
  finally
    WIC.Free;
  end;
end;

Es gibt viele, viele, viele verschiedene Arten von „rohen“ Bilddateiformaten, so es ist nicht abzusehen, ob WIC wird in der Lage sein, es zu handhaben.

Andere Tipps

TPicture- ist sehr schwierig, mit zu arbeiten, wenn Sie die Grafik-Eigenschaft zugreifen er nichts überprüfen. Um Nicks Code Arbeit zu machen können Sie das Bild zwingen, eine Bitmap zu erstellen zuerst:

Image1.Picture.Bitmap;
Image1.Picture.Graphic.Assign(WIC);

Es wäre schön, wenn die TPicture- Klasse mehr erfolgreich ist seine Implementierungsdetails versteckt: -)

Nick Antwort richtig war, nachdem alle! Ich ging sah mehr zurück eng und fand die Ausnahme auftritt auf die Weisen Aussage ... weil die TImage auf meiner Form kein Bild hat! Sie auf ein Bild in der IDE Objektinspektor zuweisen oder sie in ähnlicher Weise, wie mein Code unten machte es Arbeit toll!

Initialisierung

Der folgende Code wird eine RAW-Datei in eine BMP-Datei konvertieren. Ich habe nicht viel mit Bildern gearbeitet, also bin ich nicht ganz sicher, dass der folgende Code korrekt ist, aber es scheint zu funktionieren. Feedback willkommen.

Zur Erinnerung an anderen Entwicklern: mein früherer Kommentar oben hat Links zu einer großen Quelle der Probe RAW-Dateien und Codecs. Diese sind von unschätzbarem Wert.

Danke, Nick, und Embarcadero !!!

  procedure TForm1.Button1Click(Sender: TObject);
  var
    WIC: TWICImage;
    BMP: TBitMap;
  begin
    WIC := TWICImage.Create;
    BMP := TBitMap.Create;
    try
      WIC.LoadFromFile('MyFileName.Raw');
      BMP.Assign(WIC);
      BMP.SaveToFile('MyFilename.bmp');
    finally
      WIC.Free;
      BMP.Free;
    end;
  end;

Nachdem die Canon RAW Codec geladen, rc170upd_7l.exe, von http://www.usa.canon .com / cusa / windows_vista / Kameras / eos_slr_camera_systems / canon_raw_codec_software # DriversAndSoftware , Dies zeigt ein Bild in Delphi 2010 auf XP SP3:

var  
    WIC: TWICImage;  
begin  
    WIC := TWICImage.Create;  
    try  
        WIC.LoadFromFile('IMG_0201.CR2'); // WIC.ImageFormat reports wifOther  
        Img1.Picture.Assign(WIC);  
    finally  
        WIC.Free;  
    end;  
end;  
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top