Discussion:
Defekte JPG Dateien suchen
(zu alt für eine Antwort)
Norbert Dimmler
2007-06-14 16:19:50 UTC
Permalink
Hallo an alle
weiß jemand ein Programm, mit dem man gezielt nach defekten JPG Dateien
suchen kann. Nach einem Festplattencrash sind etliche Dateien nicht mehr
lesbar, im Hexeditor fanden sich teilweise dann Reste von anderen Dateien.
Ich möchte nun nicht unbedingt einige tausend Bilder durchgucken müssen, um
die defekten zu finden. Eventuell noch funktionierende Doubletten lassen
sich dann mit der Windows-Suchfunktion dann schon finden.
mfg
Norbert
Lukas Graf
2007-06-14 17:46:09 UTC
Permalink
Post by Norbert Dimmler
weiß jemand ein Programm, mit dem man gezielt nach defekten JPG Dateien
suchen kann.
Hier (Linux) würde ich dazu identify aus der ImageMagick Suite
(http://www.imagemagick.org) heranziehen:

#!/bin/bash
updatedb
for image in $(locate -ir '\.jp\?g$');
do
if identify -regard-warnings $image 1>/dev/null 2>&1;
then echo -n "OK ";
else echo -n "Broken ";
fi;
echo $image;
done

Oder das ganze auf Deutsch:
- Finde alle Dateien die auf .jp?g enden
- Für jede dieser Datei führe identify aus
- Rückgabewert 0:
Datei OK
- Rückgabewert 1:
Datei korrupt

Unter Windows kannst du das auf jeden Fall auch so machen, wenn du CygWin
(http://www.cygwin.com) und ImageMagick installierst.

Eventuell geht es aber unter XP / Vista bereits mit Bordmitteln +
ImageMagick, ich weiss nicht wie weit die Windows-Shell unterdessen
fortgeschritten ist (oder in anderen Worten, wieviele weitere Funktionen
sie unterdessen noch von den unixoiden Shells geklaut haben ;-))

Wenn dich dieser Ansatz (Commandline) nicht abschreckt, und du weitere
Erläuterungen / Hilfe brauchst, helfe ich gern weiter, soweit möglich.

Gruss Lukas
Harald Klemm
2007-06-16 05:32:03 UTC
Permalink
Hi Lukas.!
Post by Lukas Graf
Hier (Linux) würde ich dazu identify aus der ImageMagick Suite
#!/bin/bash
updatedb
for image in $(locate -ir '\.jp\?g$');
do
if identify -regard-warnings $image 1>/dev/null 2>&1;
then echo -n "OK ";
else echo -n "Broken ";
fi;
echo $image;
done
Absolut super Skript, eine kleine Verbesserung habe ich noch, wenn Du noch
den Anfang auf
Post by Lukas Graf
------------
#!/bin/bash
IFS="
"
updatedb
Post by Lukas Graf
------------
änderst, und die Zeile mit $image auf "$image" änderst
Post by Lukas Graf
------------
if identify -regard-warnings "$image" 1>/dev/null 2>&1;
Post by Lukas Graf
------------
werden auch Images mit Leerzeichen richtig erkannt und überprüft.

BYe
Harald
Lukas Graf
2007-06-16 16:00:29 UTC
Permalink
Post by Harald Klemm
Absolut super Skript, eine kleine Verbesserung habe ich noch, wenn Du noch
den Anfang auf
Post by Lukas Graf
------------
#!/bin/bash
IFS="
"
updatedb
Post by Lukas Graf
------------
änderst,
Ah, das habe ich vergessen. Wollte zuerst eigentlich 'find' verwenden, hab
dann aber im letzten Moment auf slocate umgeschwenkt, da doch um einiges
schneller, und ganz am Schluss noch das 'updatedb' hinzugefügt, dass sicher
niemand das Script mit einer veralteten DB ausführt ;)
Post by Harald Klemm
und die Zeile mit $image auf "$image" änderst
Post by Lukas Graf
------------
if identify -regard-warnings "$image" 1>/dev/null 2>&1;
Post by Lukas Graf
------------
werden auch Images mit Leerzeichen richtig erkannt und überprüft.
*hmpf*, natürlich. Wiedermal hab ich vergessen korrekt zu quoten. :)

Danke dir für die Ergänzungen!

Gruss Lukas
G.B.
2007-06-14 23:07:53 UTC
Permalink
Post by Norbert Dimmler
weiß jemand ein Programm, mit dem man gezielt nach defekten JPG Dateien
suchen kann.
Norbert
Ich verwende dafür meinen Kaspersky 6. Damit werden alle oder auch nur
ausgewählte Formate gesucht/gefunden/geprüft und protokolliert. Danach
habe ich 30 Tage Zeit, das Protokoll abzuarbeiten oder einen neuen Lauf
zu starten. ;-)

Fast 0 Aufwand für hohe Effizienz!

Gerhard
Ulrich F. Heidenreich
2007-06-15 07:53:32 UTC
Permalink
Post by Norbert Dimmler
Ich möchte nun nicht unbedingt einige tausend Bilder durchgucken müssen, um
die defekten zu finden. Eventuell noch funktionierende Doubletten lassen
sich dann mit der Windows-Suchfunktion dann schon finden.
Im schlimmsten Fall IrfanViews Batchconversion dazu mißbrauchen:
Damit alle JPG nach TIF (und ggfls. wieder zurück nach JPG)
konvertieren lassen. Dabei fallen die defekten JPG zwangsläufig
raus. Holzhammermethode, ich weiß ...

CU!
Ulrich
--
Aus meiner Sammlung "Nervige Dialoge mit Demenz-Kranken":

Ich: Mutter, laß bitte Deine Finger vom Toilettenpapier!
Sie: Ja, wo soll ich sie denn sonst hinhängen?
Horst Saak-Winkelmann
2007-06-15 16:32:10 UTC
Permalink
Am Fri, 15 Jun 2007 09:53:32 +0200 schrieb "Ulrich F. Heidenreich"
<***@tremornet.de> :

...
Post by Ulrich F. Heidenreich
Post by Norbert Dimmler
Ich möchte nun nicht unbedingt einige tausend Bilder durchgucken müssen, um
die defekten zu finden. Eventuell noch funktionierende Doubletten lassen
sich dann mit der Windows-Suchfunktion dann schon finden.
Damit alle JPG nach TIF (und ggfls. wieder zurück nach JPG)
konvertieren lassen. Dabei fallen die defekten JPG zwangsläufig
raus. Holzhammermethode, ich weiß ...
...
Diese Lösung hat ja was. Aber reicht es nicht aus die JPG-Dateien nach
TIF zu kopieren? Dann erstellt man sich von dem Ordner eine
Dateinamensliste und sieht welche JPG-Datei wegen Defekt nicht kopiert
wurde.
Vielleicht gibts ja hier bei den Digitalen ja jemand der das in ein
Script packen kann? Womöglich gibts sogar Wege in der Ergebnisliste
nur die defekten JPG-Dateien benannt zu bekommen?

Gruß, Horst (CvD)
--
Heute ohne Signatur
Ulrich F. Heidenreich
2007-06-16 06:17:05 UTC
Permalink
Post by Horst Saak-Winkelmann
Post by Ulrich F. Heidenreich
Damit alle JPG nach TIF (und ggfls. wieder zurück nach JPG)
konvertieren lassen. Dabei fallen die defekten JPG zwangsläufig
raus. Holzhammermethode, ich weiß ...
...
Diese Lösung hat ja was. Aber reicht es nicht aus die JPG-Dateien nach
TIF zu kopieren?
Nein, denn *kopieren* tut IrfanView ohne Prüfung, ob die Endung auch zum
Inhalt paßt. Zwingt man ihn aber zum Konvertieren, fällt ihm freilich
auf, wenn im JPG kein Jpeg ist.
Post by Horst Saak-Winkelmann
Vielleicht gibts ja hier bei den Digitalen ja jemand der das in ein
Script packen kann? Womöglich gibts sogar Wege in der Ergebnisliste
nur die defekten JPG-Dateien benannt zu bekommen?
Da es sich ja wohl um Fotos (und damit um Jpeg mit EXIF-Daten darin)
handelt, könnte man prüfen, ob die Dateien mit FF D8 (Start of Image)
und FF E1 (Exif) beginnen. Ein anderer Ansatz wäre, wenn Sie alle aus
der gleichen Kamera stammen, nach Dateien zu suchen, die den Kameranamen
enthalten

CU!
Ulrich
--
Aus meiner Sammlung "Nervige Dialoge mit Demenz-Kranken":

Ich: Mutter, laß bitte Deine Finger vom Toilettenpapier!
Sie: Ja, wo soll ich sie denn sonst hinhängen?
Horst Saak-Winkelmann
2007-06-16 09:10:12 UTC
Permalink
Am Sat, 16 Jun 2007 08:17:05 +0200 schrieb "Ulrich F. Heidenreich"
<***@tremornet.de> :

...
Post by Ulrich F. Heidenreich
Post by Horst Saak-Winkelmann
Diese Lösung hat ja was. Aber reicht es nicht aus die JPG-Dateien nach
TIF zu kopieren?
Nein, denn *kopieren* tut IrfanView ohne Prüfung, ob die Endung auch zum
Inhalt paßt. Zwingt man ihn aber zum Konvertieren, fällt ihm freilich
auf, wenn im JPG kein Jpeg ist.
...
Ah ja, schade. Konnte das nicht prüfen da ich IrfanView nicht mehr
benutze.

Gruß, Horst (CvD)
--
Heute ohne Signatur
Hannes Hegenbart
2007-06-17 23:41:21 UTC
Permalink
Post by Ulrich F. Heidenreich
Damit alle JPG nach TIF (und ggfls. wieder zurück nach JPG)
konvertieren lassen. Dabei fallen die defekten JPG zwangsläufig
raus.
Nicht immer .... wenn nur einige wenige Daten der Datei defekt sind,
kommt es durchaus vor, dass das Jpg dekodiert wird.
Da ist dann aber mitten im Bild irgendwo Schluss oder auch
nur die Farbe flasch oder verschoben.

Ich hatte aus dem gleichen Grund mir dann mal ein
Programm geschrieben, welches JPGs nach mehr oder
weniger typischen Sequenzen kaputter Sektoren bzw. Cluster
durchsucht.
Naja, hatte bei mir auch eine ganze Menge gefunden aber eben
auch nicht alle.
Ein Programm, das sich die Bilder *ansieht*, wäre besser :-)

Gruß
HH
Jürgen Eidt
2007-06-18 00:16:38 UTC
Permalink
Post by Hannes Hegenbart
Ich hatte aus dem gleichen Grund mir dann mal ein
Programm geschrieben, welches JPGs nach mehr oder
weniger typischen Sequenzen kaputter Sektoren bzw. Cluster
durchsucht.
Naja, hatte bei mir auch eine ganze Menge gefunden aber eben
auch nicht alle.
Ein Programm, das sich die Bilder *ansieht*, wäre besser :-)
;)
Ja, ist interessant was dann alles zu Tage kommt. Vorschaubild ist in
Ordnung, aber das Hauptbild hat die schon beschriebenen Farbfehler oder es
fehlt ein Teil. Das sieht in der Übersichtsdarstellung erst mal alles gut
aus weil dort nur die Vorschaubilder angezeigt/verwendet werden.
Da lass ich mit meiner Lösung immer einen Check laufen (Beschreibung in
englischer Sprache):
http://jurgene.spaces.live.com/blog/cns!ECF9470581AA39EA!205.entry
Ulrich F. Heidenreich
2007-06-18 07:37:17 UTC
Permalink
Post by Jürgen Eidt
http://jurgene.spaces.live.com/blog/cns!ECF9470581AA39EA!205.entry
XML Parsing Error: syntax error
Location:
http://jurgene.spaces.live.com/blog/cns!ECF9470581AA39EA!205.entry
Line Number 3, Column 49:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
------------------------------------------------^

Sehr informativ ...

CU!
Ulrich
Jürgen Eidt
2007-06-18 16:41:55 UTC
Permalink
Post by Ulrich F. Heidenreich
XML Parsing Error: syntax error
http://jurgene.spaces.live.com/blog/cns!ECF9470581AA39EA!205.entry
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
------------------------------------------------^
Sehr informativ ...
Was sagt man dazu!
Die blogs von live.com (msn.com) sind ja jetzt schon eine zeitlang aktiv.
Eigentlich sollten so gängige Browser damit zurecht kommen.
Nur mal so aus Neugier: Was für einen Browser hattest du verwendet?
Ulrich F. Heidenreich
2007-06-18 07:39:53 UTC
Permalink
Post by Hannes Hegenbart
Damit alle JPG nach TIF (und ggfls. wieder zur?ck nach JPG)
konvertieren lassen. Dabei fallen die defekten JPG zwangsl?ufig
raus.
Nicht immer .... wenn nur einige wenige Daten der Datei defekt sind,
kommt es durchaus vor, dass das Jpg dekodiert wird.
De OP hatte aber angegeben, daß er völlig falsche Inhalte in den Files
hatte. Da geht die Wahrscheinlichkeit gegen Null, daß die falschen
Inhalte zufälligerweise einen ausswertbaren Jpeg-Header haben. Und
von genau dem macht AFAIK Irfan View die Lesbarkeit abhängig.
Post by Hannes Hegenbart
Gru?
Gruwasbitte?

CU!
Ulrich
Bernd Eckenfels
2007-06-18 17:02:22 UTC
Permalink
Post by Ulrich F. Heidenreich
De OP hatte aber angegeben, daß er völlig falsche Inhalte in den Files
hatte. Da geht die Wahrscheinlichkeit gegen Null, daß die falschen
Inhalte zufälligerweise einen ausswertbaren Jpeg-Header haben. Und
von genau dem macht AFAIK Irfan View die Lesbarkeit abhängig.
Das Problem sind aber weniger die Header, die Bitfehler passieren ja in den
größeren (Daten) Sektionen der JPGs haeufiger als in den kleinen.

Gruss
Bernd
Ulrich F. Heidenreich
2007-06-18 17:35:32 UTC
Permalink
Post by Bernd Eckenfels
Post by Ulrich F. Heidenreich
De OP hatte aber angegeben, daß er völlig falsche Inhalte in den Files
hatte. Da geht die Wahrscheinlichkeit gegen Null, daß die falschen
Inhalte zufälligerweise einen ausswertbaren Jpeg-Header haben. Und
von genau dem macht AFAIK Irfan View die Lesbarkeit abhängig.
Das Problem sind aber weniger die Header,
Die Header sind nicht das Problem, sondern das Indiz.
Post by Bernd Eckenfels
die Bitfehler
Was zum Henker für Bitfehler?

Der OP hatte einen Plattenabsturz mit nachfolgenden Zuordnungsfehlern.
Heißt: Bei ihm sind Inhalte völlig anderer Dateien als *.JPG abgelegt.
Um aus diesem Chaos die wenigen Dateien herauszulesen, die tatsächlich
noch Jpegs sind, halte ich einen Konvertierungsversuch per Irfanview
immer noch als eine zulässige Methode.

CU!
Ulrich

Loading...