Mehrer Bilder gleichzeitig verändern

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Mehrer Bilder gleichzeitig verändern

Beitrag von Duff » 29.11.2005 19:01:38

Hallo,

ich suche ein Programm, mit dem ich mehrere Bilder auf eine bestimmte Größe verkleinern kann. Unter Windows heißt das Programm, meine ich, ImageBlizzard oder so.

Ich benötige ein solches Programm für debian/linux, damit ich mehrere (so um die 100) Fotos leichter ins Internet setzen kann. Sprich ich brauch die Fotos nur zu verkleinern, dann noch mit einem Programm umbennen (bild001.jpg, bild002.jpg, ...) und hochzuladen, um sie anschließend dann aus einer db auszulesen.
Oh, yeah!

Hamatoma
Beiträge: 120
Registriert: 10.08.2003 19:30:53
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von Hamatoma » 29.11.2005 19:39:19

Hi,
sehr gut eignet sich dazu das Programmpaket ImageMagick.
Unter Debian:

Code: Alles auswählen

apt-get install imagemagick
Mit diesem Einzeiler (in einer Shell) werden alle jpg-Dateien des aktuellen Verzeichnisses
in das Format 250x188 konvertiert, wobei das Ergebnis im Unterordner small landet.

Code: Alles auswählen

for i in *.jpg ; do convert $i -resize 250x188 small/$i ; done
Hamatoma

NoRitz
Beiträge: 76
Registriert: 11.06.2004 14:54:43
Wohnort: Wuppertal

Beitrag von NoRitz » 29.11.2005 19:51:43

Genauso mache ich das auch, wobei ich die Kommandos in einem kleinem Script gesteckt habe:

Code: Alles auswählen

#!/bin/bash
# Bilder auf 800*600  reduzieren
mkdir Bilder800*600
for bild in *.jpg
do
        convert "$bild" -resize 800x600 "Bilder800*600/$bild"
done
Das erspart einem das Tippen. Man muß jetzt nur in das Verzeichnis wechsel, wo die zu konvertierenden Bilder sind und startet das Script. Fertig.

Norbert

Benutzeravatar
knittels
Beiträge: 249
Registriert: 10.04.2004 23:25:47
Kontaktdaten:

Beitrag von knittels » 29.11.2005 21:18:18

Code: Alles auswählen

mogrify -resize 800x600 *.jpg
Gruß Knittels

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 29.11.2005 21:34:33

Danke für die Antworten.

Die beiden Skripte habe ich verstanden. Um die Skripte aufrufen zu können, muss ich imagemagick installieren.

Mit

Code: Alles auswählen

mogrify -resize 800x600 *.jpg
überschreibe ich dann das Original-Bild.
Oh, yeah!

Benutzeravatar
knittels
Beiträge: 249
Registriert: 10.04.2004 23:25:47
Kontaktdaten:

Beitrag von knittels » 29.11.2005 21:49:03

Duff hat geschrieben:Danke für die Antworten.

Die beiden Skripte habe ich verstanden. Um die Skripte aufrufen zu können, muss ich imagemagick installieren.
mogrify ist auch aus imagemagick.
Duff hat geschrieben: Mit

Code: Alles auswählen

mogrify -resize 800x600 *.jpg
überschreibe ich dann das Original-Bild.

Code: Alles auswählen

man mogrigfy
...
 Each  transmogrified image overwrites the corresponding original image
...

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 29.11.2005 21:55:16

Genau, dass meinte ich ja, der Überschreibt.

Ich hatte unter

Code: Alles auswählen

man  imagemagick
nachgeschaut.
Oh, yeah!

slide_
Beiträge: 60
Registriert: 22.04.2005 18:22:00
Wohnort: Berlin
Kontaktdaten:

Beitrag von slide_ » 08.12.2005 14:54:13

Ich nutze dafür http://www.xnview.de/.
Bietet viele sinnvolle Batch-Funktionen (z.B. Größe ändern, drehen, Kontrast/Helligkeit...)
diese Zeile bitte nicht beschriften

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 08.12.2005 18:47:00

Danke für die Antwort.

Lade es mir gerade runter und müsste jetzt auch fertig sein.
Werde es installieren und ausprobieren.
Oh, yeah!

Mosquito
Beiträge: 134
Registriert: 25.03.2005 13:50:44
Wohnort: Ulm
Kontaktdaten:

Beitrag von Mosquito » 06.10.2006 20:28:12

Folgendes Script:

Code: Alles auswählen

#!/bin/bash
# Bilder auf 800*600  reduzieren
mkdir Bilder800*600
for bild in *.jpg
do
        convert "$bild" -resize 800x600 "Bilder800*600/$bild"
done 
Meine Frage:
Wie benenne ich die Dateien neu?
von 001.jpg bis ende?
signatur in arbeit...

Benutzeravatar
blueflidge
Beiträge: 1414
Registriert: 31.01.2005 10:16:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Bonn

Beitrag von blueflidge » 06.10.2006 20:51:05

Mosquito hat geschrieben:Meine Frage:
Wie benenne ich die Dateien neu?
von 001.jpg bis ende?
Für KDE gibt es KRename (http://www.krename.net/)
Beste Grüße
Tamara
The Debian Women Project

Benutzeravatar
knittels
Beiträge: 249
Registriert: 10.04.2004 23:25:47
Kontaktdaten:

Beitrag von knittels » 06.10.2006 21:25:54

Hallo,

ich möchte als GUI dann mal Digikam in die Runde werfen.
Digikam kann in der Stapelverarbeitung eine beliebig ausgewählte Bilderserie in einen neuen Zielordner verkleinern. Das Umbenennen von Bildern nach dem Schema Bild01.jpg usw. ist auch möglich. Leider beides nicht in einem Rutsch.

Gruß, Knittels

Mosquito
Beiträge: 134
Registriert: 25.03.2005 13:50:44
Wohnort: Ulm
Kontaktdaten:

Beitrag von Mosquito » 06.10.2006 22:17:18

hehe, habs auch so hinbekommen:

Code: Alles auswählen

#!/bin/bash
# Bilder auf 640*480  reduzieren
mkdir "640"
mkdir "120"
declare -i cnt=1
for bild in *.jpg
do
	if [ $cnt -lt 99 ]; then
		if [ $cnt -lt 10 ]; then
			nr="00$cnt"		
		else
			nr="0$cnt"		
		fi
	fi
        convert "$bild" -resize 640x480 -quality 70 "640/$nr.jpg"
        convert "$bild" -resize 120x80 -quality 50 "120/$nr.jpg"
cnt=$cnt+1
done 
Wahrschenlich gehts tausendmal einfacher aber das ist mein erstes Script und ich will mich mal selber loben ;D

hat jemand verbesserungsvorschläge?

z.B. wüsste ich gern wie ich es bewerkstellige dass ich das Script nicht bei 1 starte sondern mit zusätzlichem parameter bei z.b 43 starte, so etwa:

Code: Alles auswählen

 $: ./convert -start_nr 43
signatur in arbeit...

schwedenmann
Beiträge: 5650
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Grafiken per batch verändern

Beitrag von schwedenmann » 06.10.2006 22:50:05

hallo

Ich möchte dann ncoh ein plug-in von gimp in die Runde werfen

DBP

http://members.ozemail.com.au/~hodsond/dbp.html

gibts zwar nciht als deb, aber bei mir funktionierts, wenn man eben keine scripte und imagemagick verwenden möchte, was denselben zweck erfüllt.

mfg
schwedenmann

Benutzeravatar
Manfred
Beiträge: 1977
Registriert: 08.02.2004 10:51:23
Wohnort: Far Far Away

Beitrag von Manfred » 06.10.2006 23:38:10

Mosquito hat geschrieben:hehe, habs auch so hinbekommen:

Code: Alles auswählen

#!/bin/bash
# Bilder auf 640*480  reduzieren
mkdir "640"
mkdir "120"
declare -i cnt=1
for bild in *.jpg
do
	if [ $cnt -lt 99 ]; then
		if [ $cnt -lt 10 ]; then
			nr="00$cnt"		
		else
			nr="0$cnt"		
		fi
	fi
        convert "$bild" -resize 640x480 -quality 70 "640/$nr.jpg"
        convert "$bild" -resize 120x80 -quality 50 "120/$nr.jpg"
cnt=$cnt+1
done 
Wahrschenlich gehts tausendmal einfacher aber das ist mein erstes Script und ich will mich mal selber loben ;D

hat jemand verbesserungsvorschläge?

z.B. wüsste ich gern wie ich es bewerkstellige dass ich das Script nicht bei 1 starte sondern mit zusätzlichem parameter bei z.b 43 starte, so etwa:

Code: Alles auswählen

 $: ./convert -start_nr 43
Ich würde statt

Code: Alles auswählen

declare -i cnt=1

Code: Alles auswählen

declare -i cnt=43
versuchen
Ciao

Manfred

A computer only does what you actually told it to do - not what you thought you told it to do.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 07.10.2006 12:53:04

Genau.

Oder du machst es bei deinem Script so, dass du immer einen Parameter mit angeben musst beim Aufruf des Scripts. Nämlich den, der die Variable cnt festlegt.

Nur so ne Idee. Dürfte ja nicht alt so schwer sein.
Oh, yeah!

Antworten