[gelöst] Befehl für convert?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
Adana
Beiträge: 173
Registriert: 18.06.2006 16:32:10
Wohnort: Achim
Kontaktdaten:

[gelöst] Befehl für convert?

Beitrag von Adana » 14.12.2008 18:30:59

Hallo Leute!

Ich möchte mit dem Konsolen-Programm convert einen Schwung an Bilder in ein anderes Format konvertieren.
Der Vorgang an sich ist nicht das Problem, da gibt man ja anstelle des Dateinamens einfach nur ein Sternchen ein, mit der Dateiendung und gut. Aber die konvertierten Bilder haben dann alle den Dateinamen *.jpg_1 usw.

Wie müsste der Befehl lauten, damit die konvertierten Dateien den Original-Dateinamen bekommen?

Herzlichen Dank für Eure Hilfe,

Gruß,

Adana
Zuletzt geändert von Adana am 23.12.2008 19:52:13, insgesamt 1-mal geändert.
Es gibt keine Probleme, es gibt nur Herausforderungen. Allerdings - es gibt da ja noch Windows...
Meine Drachenaufzucht: http://dragcave.net/user/Helatesu

Benutzeravatar
MarkusF
Beiträge: 361
Registriert: 04.06.2007 12:45:22

Re: Befehl für convert?

Beitrag von MarkusF » 14.12.2008 21:01:29

Adana hat geschrieben:Wie müsste der Befehl lauten, damit die konvertierten Dateien den Original-Dateinamen bekommen?
Hi,
ich wüsste nicht, dass das direkt mit convert ginge und erst recht nicht ob ich das wollte. Wenn was schief geht ist dar Original ja weg. Aber mit nem miniscript ist das doch nen Klacks.

Code: Alles auswählen

aktpath=$1
newpath=$2
newsize=$3
qualitaet=$4

cd $1
for bild in *.jpg
do
  echo "create " "$newpath/${bild}"
  convert "$bild" -resize $newsize\x$newsize -quality $qualitaet "$newpath/${bild}"
done
mal so aus der Hüfte geschossen. Die neue Version wird in newpath abgelegt. Du kannst natürlich noch dabei löschen, umbenennen etc. Die Werte werden in dem Fall als Kommandozeilenparameter übergeben.

Grüße, Markus

Benutzeravatar
Adana
Beiträge: 173
Registriert: 18.06.2006 16:32:10
Wohnort: Achim
Kontaktdaten:

Re: Befehl für convert?

Beitrag von Adana » 14.12.2008 21:11:25

Hallöchen!

Oh, da habe ich mich wohl nicht klar genug ausgedrückt: ich wollte nicht die Größe ändern, sondern das Dateiformat. z. B. von pcx in jpg.
Für die Änderung der Größe habe ich schon einen Befehl: da wird dem Originalnamen nur noch ein Zusatz angehängt, um das Original nicht zu überschreiben, geht ebenso gut, denke ich:

Code: Alles auswählen

for i in *.JPG; do convert -resize 600x450 $i `basename $i .JPG`_s.JPG; done
bzw.
for i in *.JPG; do convert -resize 50% $i `basename $i .JPG`_s.JPG; done
Gruß,

Adana
Es gibt keine Probleme, es gibt nur Herausforderungen. Allerdings - es gibt da ja noch Windows...
Meine Drachenaufzucht: http://dragcave.net/user/Helatesu

Benutzeravatar
MarkusF
Beiträge: 361
Registriert: 04.06.2007 12:45:22

Re: Befehl für convert?

Beitrag von MarkusF » 14.12.2008 21:29:16

Adana hat geschrieben:Oh, da habe ich mich wohl nicht klar genug ausgedrückt: ich wollte nicht die Größe ändern, sondern das Dateiformat. z. B. von pcx in jpg.
Für die Änderung der Größe habe ich schon einen Befehl: da wird dem Originalnamen nur noch ein Zusatz angehängt, um das Original nicht zu überschreiben, geht ebenso gut, denke ich:
Ups, stimmt. Du schreibst 'in anderes Format kopieren', das ist eigentlich deutlich :oops:

Aber dann versteh ich dein Problem gleich gar nicht mehr. Du musst doch nur im Script dafür sorgen, dass aus dem Textstring file.pcx file.jpg wird, dann kümmert sich convert schon um alles! Komm, das hast du doch drauf 8)

Grüße, Markus

Benutzeravatar
Adana
Beiträge: 173
Registriert: 18.06.2006 16:32:10
Wohnort: Achim
Kontaktdaten:

Re: Befehl für convert?

Beitrag von Adana » 14.12.2008 21:40:45

Äh, leider nicht ganz. Damit convert alle Dateien in einem Rutsch konvertiert, habe ich Wildcards verwendet, also folgenden Befehl:

Code: Alles auswählen

convert *pcx *.jpg
Das funzt soweit ja auch, nur hätte ich gerne, daß der originalname der Dateien erhalten bleibt, allenfalls ein Zusatz wi z. B _neu oder ähnliches.

In dem Befehl für die Größenänderung ist das so eingegeben. ich hab ja auch schon rumexperimentiert, aber irgendwie gelingt es mir nicht.

Auch bringt mich die Ausgabe von 'convert' nicht viel weiter.

Ich hatte gehofft, daß jemand hier sowas schon mal gemacht hat, und mir da weiterhelfen kann...

Gruß,

Adana
Es gibt keine Probleme, es gibt nur Herausforderungen. Allerdings - es gibt da ja noch Windows...
Meine Drachenaufzucht: http://dragcave.net/user/Helatesu

Benutzeravatar
MarkusF
Beiträge: 361
Registriert: 04.06.2007 12:45:22

Re: Befehl für convert?

Beitrag von MarkusF » 14.12.2008 22:13:56

Adana hat geschrieben:Äh, leider nicht ganz. Damit convert alle Dateien in einem Rutsch konvertiert, habe ich Wildcards verwendet, also folgenden Befehl:

Code: Alles auswählen

convert *pcx *.jpg
Das funzt soweit ja auch, nur hätte ich gerne, daß der originalname der Dateien erhalten bleibt, allenfalls ein Zusatz wi z. B _neu oder ähnliches.
Also ich glaub immer noch nicht, dass das so direkt mit dem convertbefehl machbar ist, aber vielleicht hat ja noch wer ne Idee? Hier nochmal mein Script mit ner kleinen Anpassung. Aus file.pcx wird file.jpg und die Datei wird korrekt konvertiert.

Code: Alles auswählen

newsize=$3
qualitaet=$4
newtype="jpg"

cd $1
for bild in *.pcx
do
  neuname=$(basename $bild .jpg).png
  convert "$bild" -resize $newsize\x$newsize -quality $qualitaet $neuname"
done

Viel Erfolg

Benutzeravatar
Adana
Beiträge: 173
Registriert: 18.06.2006 16:32:10
Wohnort: Achim
Kontaktdaten:

Re: Befehl für convert?

Beitrag von Adana » 14.12.2008 22:28:22

Hallo MarkusF!

Also, ich habe den Code mal bei mir als Script abgespeichert und ausführbar gemacht.

leider funktioniert es nicht, ich kann aber auch nicht feststellen, woran genau es liegt.
Jedenfalls wird mir das letzte Wort 'done' in Rot dargestellt (in Kwrite), obwohl es eigentlich schwarz dargestellt werden sollte.
Ganz links ist ja auch die, ja wie heißt das eigentlich, Pfad-darstellung? Die kleinen Minus-Zeichen, mit denen man Befehls-Sequenzen ausblenden kann.
Der läift bei mir ins leere, was mir sagt, daß da noch irgend etwas fehlt...

Gruß,

Adana
Es gibt keine Probleme, es gibt nur Herausforderungen. Allerdings - es gibt da ja noch Windows...
Meine Drachenaufzucht: http://dragcave.net/user/Helatesu

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Befehl für convert?

Beitrag von GoKi » 14.12.2008 22:47:48

Da fehlt ein " vor $newname

Aber wieso nimmst nicht einfach die von die geposteten Script und passt diese an? Ist ja im Prinzip das gleiche.... :)
MfG GoKi
:wq

Benutzeravatar
Adana
Beiträge: 173
Registriert: 18.06.2006 16:32:10
Wohnort: Achim
Kontaktdaten:

Re: Befehl für convert?

Beitrag von Adana » 14.12.2008 23:05:18

Hi GoKi!

Herzlichen Dank, genau das war der Fehler.

Aber was genau meinst Du jetzt mit anpassen, was soll ich anpassen? Sorry, ich steh gerade im Wald, was wohl auch darn liegt, daß ich in Linux und auf der Konsole noch nicht ganz so fit bin.

Aber auch mit dem Script komme ich nicht weiter, wenn ich es starte, bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

./konvertierung.sh
bash: ./konvertierung.sh: /bin/sh^M: bad interpreter: Datei oder Verzeichnis nicht gefunden
Habe ich den falschen Befehl genommen? Oder ist da im Script noch etwas, das angepasst werden muß?
Könnte es mit dem Befehl

Code: Alles auswählen

cd $1
zu tun haben? CD steht doch eigentlich für 'change direktory' Ich habe das Script aber in dem gleichen Verzeichnis liegen, in dem sich auch die zu konvertierenden Bilder befinden...

Gruß,

Adana
Es gibt keine Probleme, es gibt nur Herausforderungen. Allerdings - es gibt da ja noch Windows...
Meine Drachenaufzucht: http://dragcave.net/user/Helatesu

Benutzeravatar
MarkusF
Beiträge: 361
Registriert: 04.06.2007 12:45:22

Re: Befehl für convert?

Beitrag von MarkusF » 14.12.2008 23:22:21

Adana hat geschrieben: Habe ich den falschen Befehl genommen? Oder ist da im Script noch etwas, das angepasst werden muß?
Könnte es mit dem Befehl

Code: Alles auswählen

cd $1
zu tun haben? CD steht doch eigentlich für 'change direktory' Ich habe das Script aber in dem gleichen Verzeichnis liegen, in dem sich auch die zu konvertierenden Bilder befinden...
Hallo Adana,
tschuldigung, es ist halt Sonntag abend, da ist meine Konzentration nicht gerade auf Maximum.

cd $1 steht für 'wechsle in das Verzeichnis, das als erster Paramter dem Script mitgegeben wird. Wenn das Script im gleichen Ordner liegt, dann lösche den Befehl einfach weg oder kommentiere ihn aus # cd $1. Wenn's gar nicht klappt dann melde dich nochmal, dann kriegste morgen nen komplettes Script.

Gut's Nächtle
Markus

Benutzeravatar
Adana
Beiträge: 173
Registriert: 18.06.2006 16:32:10
Wohnort: Achim
Kontaktdaten:

Re: Befehl für convert?

Beitrag von Adana » 14.12.2008 23:31:21

Hi Markus!

Nur keine Entschuldigungen, solche 'routinefehler' passieren doch selbst den Besten! :-)

Aber leider funktioniert es immer noch nicht:

Code: Alles auswählen

$ ./konvertierung.sh
bash: ./konvertierung.sh: /bin/sh^M: bad interpreter: Datei oder Verzeichnis nicht gefunden
Erst mal 'ne nacht drüber schlafen, dann erscheint vieles gleich viel klarer *lach*

Dir auch eine Gute nacht und vielen dank für Deine Bemühungen!

Gruß,

Adana
Es gibt keine Probleme, es gibt nur Herausforderungen. Allerdings - es gibt da ja noch Windows...
Meine Drachenaufzucht: http://dragcave.net/user/Helatesu

Benutzeravatar
The Torso
Beiträge: 882
Registriert: 13.07.2003 12:46:40
Lizenz eigener Beiträge: MIT Lizenz

Re: Befehl für convert?

Beitrag von The Torso » 23.12.2008 19:33:18

Adana hat geschrieben:Hi Markus!

Nur keine Entschuldigungen, solche 'routinefehler' passieren doch selbst den Besten! :-)

Aber leider funktioniert es immer noch nicht:

Code: Alles auswählen

$ ./konvertierung.sh
bash: ./konvertierung.sh: /bin/sh^M: bad interpreter: Datei oder Verzeichnis nicht gefunden
Erst mal 'ne nacht drüber schlafen, dann erscheint vieles gleich viel klarer *lach*

Dir auch eine Gute nacht und vielen dank für Deine Bemühungen!

Gruß,

Adana
Frage, mit welchem Programm hast du das Skript/die Datrei konvertierung.sh erstellt?
Probier mal ein dos2unix drueber laufen zu lassen:
dos2unix konvertierung.sh

mfg
Debian GNU/Linux 00101010

Benutzeravatar
Adana
Beiträge: 173
Registriert: 18.06.2006 16:32:10
Wohnort: Achim
Kontaktdaten:

Re: Befehl für convert?

Beitrag von Adana » 23.12.2008 19:51:40

Hallo Leute!

Also, das Script habe ich mit kwrite erstellt, so wie alle meine Scripte.

Aber manchmal liegt die Lösung direkt vor einem und man sieht sie nicht! Ich habe einfach folgenden Befehl

Code: Alles auswählen

for i in *.JPG; do convert -resize 50% $i `basename $i .JPG`_s.JPG; done
genommen und etwas geändert:

Code: Alles auswählen

for i in *.pcx; do convert -resize 100% $i `basename $i .pcx`.JPG; done
Ich habe einfach den Befehl zum verkleinern von Bild-Dateien genommen, um das Format zu ändern. Und um die Originalgröße zu erhalten, habe ich einfach 100% genommen...

Ich danke Euch für Eure Hilfe und hoffe, daß meine Lösung auch anderen helfen kann...

Ein Frohes Fest und ein glückliches, neues Jahr!

gruß,

Adana
Es gibt keine Probleme, es gibt nur Herausforderungen. Allerdings - es gibt da ja noch Windows...
Meine Drachenaufzucht: http://dragcave.net/user/Helatesu

Antworten