Convert > Verzeichnis erst. > packen (aber wie?)

M

M.tensor

Grünschnabel
Moin liebe Leute,

habe folgendes Problem:
Ich brauche eine zip-Datein, die konvertierte Bilder enhält um diese auf meine Seite zu laden. Ich möchte mit einem Script
1. bilder mittels convert, konvertieren
2. in ein Verzeichnis verschieben (am besten ist der Verzechnisname das Datum+ Uhrzeit)
3. diese Bilder, die in dem neuen Verzeichnis sind, mit zip zu einem Packet schnüren.

Ich habe schon ein script fertig, aber ich hänge noch an Punkt 2. und 3. (s. Code)
Code:
#!/bin/bash
# conv2net
echo "------Starte Imageoptimierung für das Web-------"
echo "---Dieser Prozess kann wenige Minuten dauern----"
for i in *.jpg;
do convert $i -scale 800 -quality 75  /Netimage/DatumUhrzeit/net`basename $i .jpg`.jpg;


  echo "net`basename $i .jpg`"
  done

echo "----Prozess beendet!-------"
 
Hallo,

zu 2.: date kann man Argumente mitgeben:

Code:
/Netimage/`date +%F-%R`/net`basename $i .jpg

man date

zu 3.: man zip

Code:
zip file.zip /NetImage/*

Gruß
 
Danke für die schnelle Antwort

Habe etwas falsch gemacht.:hilfe2: Es erscheint folgende Fehlermeldung:

------Starte Imageoptimierung für das Web-------
---Dieser Prozess kann wenige Minuten dauern----
convert: unable to open image `/home/****/Netimage/2006-08-24-15:01/net100_4821.jpg': No such file or directory.
net100_4821
zip warning: name not matched: /NetImage/*

zip error: Nothing to do! (file.zip)
convert: unable to open image `/home/****/Netimage/2006-08-24-15:01/net100_4822.jpg': No such file or directory.
net100_4822
zip warning: name not matched: /NetImage/*

Mein Code sieht nun so aus:
Code:
#!/bin/bash
# conv2net
echo "------Starte Imageoptimierung für das Web-------"
echo "---Dieser Prozess kann wenige Minuten dauern----"
for i in *.jpg;
do convert $i -scale 800 -quality 75  ~/Netimage/`date +%F-%R`/net`basename $i .jpg`.jpg;


  echo "net`basename $i .jpg`"
  zip file.zip /NetImage/*
  done
echo "----Prozess beendet!-------"
 
Du musst wahrscheinlich erstmal das Verzeichis ~/Netimage/`date +%F-%R`anlegen.

Was bezweckst Du eigentlich mit `basename $i .jpg`.jpg?

Gruss, Xanti
 
Was bezweckst Du eigentlich mit `basename $i .jpg`.jpg?
Mit diesem Befehl sorge ich dafür das aus z.B. 100_4829.jpg nach der Konvertierung
net100_4829.jpg wird.
Um genau zu sein, heißt es
Code:
...../net`basename $i .jpg`.jpg;

Das mit dem vorher anlegen ist ein guter Vorschlag gewesen. Jetzt befinden sich zumindest die konvertierten Datein im richtigen Ordner.
Jetzt fehlt nur noch der Zip-Befehl in meinem Script:

Code:
#!/bin/bash
# conv2net
mkdir ~/Netimage/`date +%F-%R` 
echo "---START RESIZING---"
echo "this may take some time"
for i in *.jpg;
do convert $i -scale 800 -quality 75 ~/Netimage/`date +%F-%R`/net`basename $i .jpg`.jpg;

echo "net`basename $i .jpg`"
done
  
echo "---RESIZING FINISHED---"

Danke für eure Unterstützung

Gruß, Steven
 
M.tensor schrieb:
Mit diesem Befehl sorge ich dafür das aus z.B. 100_4829.jpg nach der Konvertierung
net100_4829.jpg wird.
Um genau zu sein, heißt es
Code:
...../net`basename $i .jpg`.jpg;

Dasselbe tut auch:

Code:
...../net`basename $i`

Warum einfach, wenns auch umständlich geht ;)

M.tensor schrieb:
Jetzt fehlt nur noch der Zip-Befehl in meinem Script:

Dazu kam der Tipp schon von phrenicus. Ich würde Dir ausserdem raten, ~/Netimage/`date +%F-%R` in einer Variable zwischen zu speichern, da Du sonst Zeit-Probleme bekommst.

In der Art:

Code:
targetdir=~/Netimage/`date +%F-%R`
...
mkdir $targetdir
...
 
Hallo
Zum Zip solltest du mal in deine Manpage von zip schauen.
Da gibt es Unterschiede in der Syntax.
Das hatten wir hier schon mal.
Der Hinweis von Xanti zum date ist nicht trivial.
Generell sollte der Returnwert von date in einer Variablen gespeichert werden.
Wird es in Dateinamen oder Verzeichnisnamen verwertet, ist auch ein Test auf eine bestehende Datei ratsam.


Gruß Wolfgang
 

Ähnliche Themen

Image Resizer

hunderte Bilder bearbeiten...

Bilder aus Verzeichnis konvertieren

Onlineumfrage programmieren (mehrseitige HTML Formular an PHP übergeben)

Server-Monitoring mit RRDTool

Zurück
Oben