AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Alle Bilder eines jpeg?
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Bilder eines jpeg?

Ein Thema von Mattze · begonnen am 6. Feb 2010 · letzter Beitrag vom 6. Feb 2010
Antwort Antwort
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

Alle Bilder eines jpeg?

  Alt 6. Feb 2010, 09:35
Hallo,

wie ich in einigen "Reparaturtool" für jpg-Bilder gesehen habe, gibt es in einer jpg-Datei das Bild mehrfach, in verschiedenen Auflösungen.
Wie kann man denn nun die einzelnen Bilder extrahieren?

(Diese Tools bieten - zeigen - alle Bilder an und man kann auswählen, welches am wenigsten kaputt ist und das dann rausziehen. Bei mir war es oft so, dass das richtige, große kaputt war, während die kleineren - als Thumbnails? - noch vollständig waren.)

Hat jemand eine Idee?

Gruß
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Alle Bilder eines jpeg?

  Alt 6. Feb 2010, 10:12
Ich glaube in den EXIF-Infos zu JPEGS gibt es Möglichkeiten Thumbnails zu speichern. Ich habe damals eine Unit names dEXIF benutzt, aber auch hier im Forum wirst du einige Threads dazu finden.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Alle Bilder eines jpeg?

  Alt 6. Feb 2010, 10:41
Es hängt auch vom Format ab.

da gibt es welche, die z.B. am Anfang der Datei nur grobe/unscharfe Bilddaten haben und dann nach und nach die Deteils nachladen.

Aber dort ist es so, wenn der Dateianfang futsch ist, dann ist es der Rest auch, da alles voneinander abhängt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Alle Bilder eines jpeg?

  Alt 6. Feb 2010, 10:52
Ich hab mal in meinem Archiv gekramt. Ich habe damals folgende Units benutzt (die ich leider nicht mehr finde)
 jpegtool, dEXIF, dIPTC Dazu hab ich mir folgende Prozedur geschrieben, die andere Prozeduren aus diesen Units aufruft:
Delphi-Quellcode:
function GetAspectedJpegThumb(FileName: String; ThumbWidth, ThumbHeight: Integer; Size: TPoint; FillColor: TColor = clWhite): TPicture;
Var
 Bmp: TBitmap;
 Pic: TPicture;
 Offset: Integer;
begin
 Bmp:=TBitmap.Create;
 Pic:=TPicture.Create;

 Bmp.Width:=ThumbWidth;
 Bmp.Height:=ThumbHeight;
 Bmp.PixelFormat:=pf32bit;

 { Auch wenn kein Thumbnail vorhanden ist muss ein Bild ausgegeben werden }
 Bmp.Canvas.Brush.Color:=FillColor;
 Bmp.Canvas.FillRect(Rect(0,0,Bmp.Width,Bmp.Height));
 Pic.Assign(Bmp);

 If HasJpegThumb(FileName) = False then raise EInvalidGraphic.Create('No Thumbnail found!');

 ExtractJpegThumb(FileName,Pic);
 Offset:=Round((Bmp.Height-MulDiv(Bmp.Width,Size.Y,Size.X)) / 2);
 Bmp.Canvas.StretchDraw(Rect(0,Offset,Bmp.Width,Bmp.Height-Offset),Pic.Bitmap);
 Pic.Assign(Bmp);
 Result:=Pic;
end;
Damit hab ich einen Thumbnail bekommen, den meine DigiCam (Canon Powershot A75) in das JPEG in den EXIF-Bereich automatisch reingepackt hat
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#5

Re: Alle Bilder eines jpeg?

  Alt 6. Feb 2010, 13:35
Hallo,

vielen Dank für den Codeschnipsel.
Alles zu den Thumbs, was da drin steht, scheint aus der dExif zu stammen und die habe ich, zum Glück. Zurzeit scheint die ja nicht mehr zu kriegen zu sein.

Gruß
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Alle Bilder eines jpeg?

  Alt 6. Feb 2010, 13:41
Falls sowas tatsächlich mal auftreten sollte, lohnt es sich, einen Blick in die Google CodeSearch zu werfen. Da findet man manchmal auch ältere, kostenlose Units, die es in neueren Versionen nicht mehr kostenlos gibt.
Natürlich ist nicht sichergestellt, dass man die aktuelle Version bekommt.
Aber das nur als allgemeiner Tipp.

Edit: Hm, da findet man auch mehr als einem lieb ist. Bsp. sämtliche Units, die Luckie hostet.
Da wird also automatisiert auf Webseiten und sogar in Archiven (Zip, ...) gesucht. Verrückt. Aber das schweift vom Thema ab.
  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 23:04 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