AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia DNG- und Tiff-Bilder in Bitmaps umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

DNG- und Tiff-Bilder in Bitmaps umwandeln

Ein Thema von Theseus · begonnen am 5. Okt 2011 · letzter Beitrag vom 3. Nov 2011
 
Theseus

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

DNG- und Tiff-Bilder in Bitmaps umwandeln

  Alt 5. Okt 2011, 10:13
Nachdem ich die verschiedenste Bildformate anzeigen lassen kann (Danke für die Hilfe aus dem Forum), möchte ich nun daraus Bitmaps machen, die ich weiter bearbeiten kann. Das gelingt mir für einige Formate nicht aber für DNG, (evtl. CR2) und TIFF. Hier mein Programm:

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);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  mybitmap : TBitmap;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
// Image1.Picture.RegisterFileFormat('CR2','CR2 Format',TWICImage);
  Image1.Picture.RegisterFileFormat('DNG','DNG Format',TWICImage);
  mybitmap := TBitmap.Create;
  mybitmap.PixelFormat := PF24bit;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
    if OpenDialog1.execute then
    begin
       Image1.Picture.LoadFromFile(openDialog1.FileName);
       //das folgende funktioniert mit den verschiedensten Bildformaten: bmp, jpg, gif, tif, png, dng
       // Bilder werden angezeigt und im alten Format gespeichert
       Image1.Picture.SaveToFile(ExtractFilePath(openDialog1.FileName) + 'test1' + ExtractFileExt(openDialog1.FileName) );
       // das nun folgende funktioniert nur mit bmp-Bildern, ansonsten hat test2.bmp 0 Byte
       // außerdem verschwindet das Bild von Form1 - alles ohne Fehlermeldung :-(
       mybitmap.assign(Image1.picture.bitmap);
       mybitmap.PixelFormat := PF24bit;
       mybitmap.SaveToFile(ExtractFilePath(openDialog1.FileName) + 'test2.bmp');
    end;
end;
end.

{ Das folgende funktioniert für bmp, jpg, png, gif
Ich weiß aber nicht nicht wie man tif- und dng- Bilder behandeln kann

var
jpg : TJPEGImage;
gif : TGifImage;
png : TPngImage;
// ?? tiff :
// ?? dng :
s : string;
begin
    s := directory+ExtractFilename(currentfile);
    if (pos('.gif', lowercase(s)) = length(s)-3) then
    begin
          GIF := TGIFImage.Create;
          try
            GIF.LoadFromFile(s);
            mybitmap.Assign(GIF);
            mybitmap.pixelformat := pf24bit;
          finally
            GIF.free;
          end;
    end
    else
    if (pos('.png', lowercase(s)) = length(s)-3) then
    begin
          png := TPNGimage.Create;
          try
            png.LoadFromFile(s);
            mybitmap.assign(png);
            mybitmap.pixelformat := pf24bit;
          finally
            png.free;
          end;
    end
    else
    if (pos('.jpg', lowercase(s)) = length(s)-3) then
    begin
          jpg:=TJPEGImage.Create;
          jpg.Performance :=jpBestQuality;
          jpg.ProgressiveDisplay := false;
          try
            jpg.LoadFromFile(s);
            mybitmap.Assign(jpg);
            mybitmap.PixelFormat:= pf24Bit;
          finally
            jpg.free;
          end;
    end;
}
Danke für hilfreiche Tipps, Theseus
  Mit Zitat antworten Zitat
 


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 16:52 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