Suche Programm das Bild-Abmessungen erkennt und die Bilder dann verschiebt

alexle85

Newbie
Registriert
Sep. 2015
Beiträge
5
Hallo,
ich hoffe Ihr könnt mir weiterhelfen und kennt ein Programm das genau das macht/kann was ich suche.

Ausgangssituation:

Etwa 2000 Ordner mit Bildern. In diesen Ordnern gibt es teils Bilder mit bestimmten Abmessungen (z.B. 200x200 Pixel).


Ziel:

Ich suche nun ein Programm das alle Ordner durchsucht und automatisch für jeden Ordner wo solche Bilder gefunden werden ein Unterordner erstellt wird und diese dann reinverschoben werden.

Manuell müsste ich den Hauptordner durchsuchen über der Explorer mit z.B.: abmessungen:="‪200 x 200‬" und dann parallel in die einzelnen Ordner gehen und die gefundenen Bilder per Hand verschieben und natürlich auch jeweils einen Unterordner erstellen - dies ist extrem aufwendig.

Also; gibt es so ein Programm überhaupt? Und wenn nein wie schwierig wäre es sowas zu realisieren?!

Vielen Dank :)
 
geben keine ahnung.

Selbst programmieren in JAVA mit gutem know how 1~3 Stunde. Nicht sonderlich schwer wenn man sich etwas in den API´s auskennt. Im netz gibt es massenhaft Quellcode der genau sowas macht Stichwort :"Zeile in Dateien suchen" -
Rekrusiv.

;)
 
Explorer öffnen, Spalten in der Detailansicht hinzufügen, sortieren und dann verschieben geht nicht? Da muss man nichts für basteln oder suchen.
 
Da ich von programmieren garkeine Ahnung habe hoffe ich erstmal das vlt. jemand so ein Programm kennt; wenn es nicht erfolgreich ist dann muss ich mich wohl selber mal ransetzen irgendwie. Danke erstmal!
 
Yuuri schrieb:
Explorer öffnen, Spalten in der Detailansicht hinzufügen, sortieren und dann verschieben geht nicht? Da muss man nichts für basteln oder suchen.

Es braucht für jeden Ordner wo solche Abmessungen gefunden werden einen neuen Unterordner (z.B. Thumb) wo diese Bilder dann reinmüssen.
 
[...]durchsuchen über der Explorer mit z.B.: abmessungen:="‪200 x 200‬"[...]
Die Windowssuche müsste sich auch über ein Powershellscript ansteuern lassen. Damit sollte es also möglich sein.
 
Das würde ich per Scripting lösen, z.b. mit PowerShell. Das ist im Prinzip eigentlich recht simpel. Man sollte nur beachten dass man bei wiederholter Anwendungen die neu erstellten Sub-Ordner aus der Suche herausnimmt.
 
alexle85 schrieb:
Es braucht für jeden Ordner wo solche Abmessungen gefunden werden einen neuen Unterordner (z.B. Thumb) wo diese Bilder dann reinmüssen.

Andere Möglichkeit: In Perl macht das Skript hier:

Code:
use Image::Size;
use File::Find;
use File::Copy;

 my %MySize = map +($_=>0), qw(200x200 300x300 400x400 900x588) ;
 find({wanted=>\&process , follow=>1}, qw(Pictures Documents));

 sub process
{
 if(-f && /\.jpg$/) {
    my $fn = $_; my ($x, $y) = imgsize($fn);
    my $skey = $x.'x'.$y;
    if (exists ($MySize{$skey})) {
       if ($File::Find::dir !~ /$skey$/) {
          printf("%s: %s \n", $File::Find::name, $skey);
          mkdir $skey; move($fn, "$skey/$fn")
       }
    }
 }
}

genau das. Die Größen schreibst Du in die Klammer (Zeile 5) und die Start-Unterverzeichnisse in die andere Klammer (Pictures Documents, Zeile 6). Vorher muß Du Perl draufmachen und ggf. eine Windows-Bash (Linux-Kommandozeile) installieren.

Dann öffnest Du das übergeordnete Verzeichnis und gibst ein:

perl meinskript.pl
 
Zuletzt bearbeitet:
blöderidiot schrieb:
Fullquote entfernt


Okay danke. Und wie mache ich es wenn es sehr viele Unterverzeichnisse sind .. z.B. Hauptverzeichnis Bilder .. dann gibts Bilder\001 .. \002 ... und davon eben 100e an Unterverzeichnissen die eben durchsucht werden müssen nach solchen Bildern und dann eben \001\Thumb bzw. 002\Thumb erstellt werden wo diese reinverschoben werden.

Oder habe ich ein Verständnisproblem?
 
Zuletzt bearbeitet von einem Moderator: (Fullquote entfernt)
@ blöderidiot:
Perl, Bash?! Mit Kanonen auf Spatzen.
Code:
$dir = "hier kommt dein Pfad rein"

dir $dir -Recurse -File "*.jpg" | % {
    $f = [System.IO.FileInfo]$_
    [System.Drawing.Image]$img = [System.Drawing.Image]::FromFile( $f.FullName )
    $dim = "{0}x{1}" -f $img.Width,$img.Height
    $img.Dispose()
    $img = $null
    $nd = "$dir\$dim"
    [void](mkdir -Force $nd)
    echo ("move '{0}' to '{1}'" -f $f.FullName,"$nd\$($f.FullName)")
    mv $f.FullName $nd
}
Für die Powershell. Den Pfad in der ersten Zeile einsetzen. Ggf. vorher lokale Scripte mittels
Code:
Set-ExecutionPolicy RemoteSigned
erlauben (ggf. als Admin ausführen, weiß ich grad nicht).
 
Yuuri schrieb:
@ blöderidiot:
Perl, Bash?! Mit Kanonen auf Spatzen.

Hehe! Ich kann nur "Kanonen" ;)

Er hat das wohl schon hinbekommen (in Perl), wie ich laut PM erfahren habe.

Also, vielleicht kannst Du auch wieder mal ein wenig an der Kanone üben? Das lohnt sich! Ach so, #bash braucht man nicht, das war eine Schnapsidee von mir. Windows-CMD reicht völlig.
 
Zurück
Oben