staging.inyokaproject.org

magicgraphics

Status: Ungelöst | Ubuntu-Version: Ubuntu 19.10 (Eoan Ermine)
Antworten |

caiusjuliuscaesar

Anmeldungsdatum:
20. Januar 2009

Beiträge: 307

Hallo,

ich würde gerne eine Kopie eines Dateibaums mit diversen Dateitypen erzeugen. Im wesentlichen handelt es sich um jpg-Dateien (98%). Letztere würde ich gerne bei diesem Kopier-Prozeß auf ca. 800 Pixel Breite verkleinern. Nun habe ich von graphicsmagick gehört und würde das gerne einsetzen (statt imagemagick). Zusätzlich hätte ich gerne thumbnails der Bilddateien in entsprechenden Unterordnern ./thumbs.

Hat einer vllt. freundlicherweise einen Vorschlag, wie man vorgehen könnte?

Klassisches Muster mit rsync alles kopieren und dann nacharbeiten? So habe ich es bislang, aber mit imagemagick, gemacht.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
for vz in $FotoVZ
  do rsync -rpgou --delete --exclude="*.iso" --exclude="*Dokumente*" --exclude="Dokumente" $vz  $Ziel
done

find $Ziel -name "*.jpg" -print -exec bash -c 'convert -verbose -thumbnail 200 "$0" "${0%/*}/thumbs_${0##*/}"' {} \;

echo "Thumbnails in Unterordner kopieren" >> foto.log
find $Ziel -type d ! -name "*Dokumente*" ! -name "*thumbs*" -exec bash -c 'mkdir ${0}/thumbs; mv ${0}/thumbs_*.jpg ${0}/thumbs/' {} \;

find "$Ziel" -type f -iname '*.jpg' ! -name "thumbs*.jpg" -print0 | xargs -r0 -n 8 -P 8 mogrify -verbose -normalize -resize 1000x750

Gruß, und danke CJC

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Ich würde ungefähr so etwas machen (ungetestet):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh

quelle=...
ziel=...

# make absolute:
export ziel=$(readlink -f "$ziel")

( cd "$quelle" && find -type f -iname '*.jpg' -exec sh -c '
  for f; do
    d="$ziel/$(dirname "$f")"
    th="$d/thumbs"

    mkdir -p "$th"

    bn="${f##*/}"
    gm convert "$f" "$d/$bn"
    gm convert -thumbnail 200 "$f" "$th/$bn"
  done
' -- {} + )

caiusjuliuscaesar

(Themenstarter)

Anmeldungsdatum:
20. Januar 2009

Beiträge: 307

Zunächst einmal muß ich mich herzlich bedanken!!

Ich werde das jetzt testen, an meine Zwecke anpassen.

Gruß, CJC

Antworten |