Hallo,
ich möchte eine TIF-Datei mit mehreren Seiten in einzelne BMP-Dateien pro Seite zerlegen, um dann mit diesen weiterzuarbeiten.
Die für die Verarbeitung von TIF-Dateien immer wieder empfohlene GraphicEx hilft mir scheinbar nicht weiter,
ich erhalte nach dem einfachen Einbinden beim Compilieren der Anwendung Fehlermeldungen die sich auf diese
Unit beziehen.
Mein Versuch ging erstmal in diese Richtung,
wobei der Container ein TFrame mit daraufgesetzten TImage ist.
Delphi-Quellcode:
{ TIF-Datei zerlegen }
procedure TFormular.TIFZerlegen(const Dateiname: TFileName);
var
objImage: TWICImage;
begin
{ Grafik-Objekt erzeugen }
objImage := TWICImage.Create;
{ Fehlerbehandlung }
try
objImage.LoadFromFile(Dateiname);
{ Format prüfen }
if objImage.ImageFormat = wifTiff then
begin
{ Bild zuweisen und speichern }
Container.Image.Width := objImage.Width;
Container.Image.Height := objImage.Height;
Container.Image.Picture.Bitmap.Width := objImage.Width;
Container.Image.Picture.Bitmap.Height := objImage.Height;
Container.Image.Picture.Bitmap.Assign(objImage);
Container.Image.Picture.Bitmap.SaveToFile(Dateiname + '_TBitmap.bmp');
{ Direkt als BMP speichern }
objImage.ImageFormat := wifBmp;
objImage.SaveToFile(Dateiname + '_TWICImage.bmp');
end; { if then }
finally
{ Grafik-Objekt freigeben }
objImage.Free;
end; { try finally }
end; { TFormular.TIFZerlegen }
Es wird im TImage aber immer nur die erste Seite der TIF-Datei angezeigt und auch gespeichert.
Aber damit komme ich nicht weiter, weil hier ja offensichtlich ein Bezug auf die Seite fehlt.
Wie kann ich die einzelnen Seiten der TIF-Datei durchlaufen und als Bitmap speichern?
Ich hoffe es gibt eine einfache Lösung.
Denn selbst in der Windows-Fotogalerie kann man TIF-Dateien anzeigen und durchblättern,
aber wenn man z.B. auf der zweiten Seiten einen Rechtsklick + Kopieren macht wird auch nur die Grafik der ersten Seite in die Zwischenablage kopiert.
Grüße Frank