Defekte Bilder aussortieren

  • Ich habe einige 1000e Bilder von einer Speicherkarte wiederhergestellt. Viele Davon sind jedoch Datenmüll (Bild nicht mehr anzeigbar) - Nun würde ich gerne mit AutoIt den vorgang des sortierens skripten.

    ich habe bereits eine liste der dateien, so weit, so gut. Nun dachte ich, die Dateien einfach nacheinander öffnen zu lassen (Windows Bildanzeige) und ein "entf" zu senden, wenn das Bild nicht angezeigt werden kann.

    dummer weise ist das "Keine vorschau verfügbar" aber weder visible noch hidden text (laut au3Info tool)

    hat jemand eine Idee?

    Achja, Frohe Wihnachten ans Board :)

  • Ich würde es an deiner Stelle mit Pixelchecksum machen,
    obwohl es sicher auch mit einem Imagesearch gehen würde
    (ist in diesem Fall aber bestimmt komplizierter).

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Versuche doch, die Bilder mit _GDIPlus_LoadImage zu laden.

    [autoit]

    #include<GDIPlus.au3>
    _GDIPlus_Startup()
    $BilderPfad = "X:\meine_Bilder"
    If StringRight($BilderPfad,1) <> "\" Then $BilderPfad &= "\"
    DirCreate($BilderPfad & 'unlesbar\')
    $Bilder = _FileListToArray($BilderPfad, "*.jpg")
    For $i = 1 To $Bilder[0]
    $Bild = _GDIPlus_ImageLoadFromFile($BilderPfad & $Bilder[$i])
    If $Bild Then
    _GDIPlus_ImageDispose($Bild)
    Else
    MsgBox(0, 'Fehlerhaftes Bild', $Bilder[$i])
    ;FileDelete($BilderPfad & $Bilder[$i])
    FileMove($BilderPfad & $Bilder[$i], $BilderPfad & 'unlesbar\' & $Bilder[$i])
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    _GDIPlus_Shutdown()

    [/autoit]
  • pixelchecksum ist erstaunlich schnell, wie zuverlässig ist, dass es kein bild gibt, dass die gleiche prüfsumme hat wie der "keine vorschau" screen?
    insbesondere, dass der kurze "vorschau wird erstellt" nicht die gleiche hat......

  • Meine defekten Bilder (hatte ich auch schonmal) hatten alle die Größe von 0 Byte.
    Ich habe dann per Schleife die Bildergröße pro Bild eingelesen und die "leeren" gelöscht !

    Das ging schnell und jeder Datenmüll war weg =D