Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Thumbnails per Batch erstellen - wie?

Thumbnails per Batch erstellen - wie?

sonorman
sonorman23.03.0514:00
Hallo liebe Leute.

Wie manche ja schon wissen, planen wir schon seit einiger Zeit auf unserer Seite Plasticsurf ( ) eine Bildgalerie einzurichten. Das Projekt macht so langsam auch Fortschritte.

Da wir uns bei den Thumbnails auf ein praktisches, quadratisches Format geeinigt haben, suche ich nach einer Möglichkeit, aus den Originalen, egal ob Hoch- oder Querformat, automatisch entsprechende Thumbnails erstellen zu können. Das geht wohl auch mit Photoshop, aber so weit ich weiss, werden die Thumbs dann immer nur beginnend in der linken, oberen Bildecke erzeugt, wodurch die Thumbs oftmals einen ungünstigen Ausschnitt zeigen. Besser wäre es, wenn die Thumbs jeweils aus der Mitte des Bildes erzeugt würden.

Kennt jemand eine Möglichkeit, vielleicht ein Script, oder eine Software, mit der man das so einfach wie möglich erledigen kann?
Vielen Dank für eure Tips!
0

Kommentare

MSN_Exploder
MSN_Exploder23.03.0514:21
Ich würde das per php machen. Hab leider so ein Script nicht vorrätig kannst dich ja mal per ichat melden.

MSN_Exploder
„Es nützt der Freiheit nichts, dass wir sie abschaffen, um sie zu schützen.“
0
MoreliaV
MoreliaV23.03.0514:31
vielleicht gehts mit sowas ?

„95% aller Computerprobleme befinden sich zwischen Stuhl und Tastatur.“
0
newbie
newbie23.03.0514:34
Das sollte auch mit GraphicConverter gehen. Schau Dir mal den Befehl "Picture Size Canvas Size" an (funktioniert auch im Batch Modus).
0
sonorman
sonorman23.03.0514:40
MoreliaV

Danke für den Tip, aber das ist was anderes.
0
newbie
newbie23.03.0514:51
Habe gerade gesehen, dass "Canvas Size" die Bilder nicht skaliert. Aber falls alle deinen Original dasselbe Hoch- bzw. Querformat besitzen, kommst Du im Batch-Modus mit "Delete Margin" + "Scale" weiter.
0
MoreliaV
MoreliaV23.03.0514:52
sorry ... zu schnell getippt....schau mal unter:



5. Beitrag von Sir Robin
„95% aller Computerprobleme befinden sich zwischen Stuhl und Tastatur.“
0
leBeat
leBeat23.03.0515:02
vielleicht etwas OT, aber worum gehts bei der seite? interessantes und neues zum thema film, foto, video?
privates projekt?

schöner name.
0
sonorman
sonorman23.03.0515:04
newbie

Versuche das gerade in GC nachzuvollziehen. Obwohl ich meistens auch mit englischen Softwareversionen arbeite, habe ich ausgerechnet von GraphicConverter die deutscher Version.
Also, Batchmodus dürfte Mehrfachkonvertieren sein. Aber darunter finde ich nichts passendes. Nur "Ikon/Vorschau erzeugen", aber das ist ja was anderes. Ausserdem bekomme ich es nicht quadratisch hin.

Muss ich wohl noch mal weiter mit experimentieren.

MoreliaV
Ich muss noch dazu sagen, dass die Galerie mit Flash erstellt wird. Mit PHP komme ich da wohl nicht weiter, wie mir MSN_Exploder per Chat gesagt hat (THX nochmal).
Ich muss also, wenn ich das richtig sehe, lokal bei mir aus den Originalen kleine Thumbs als JPG oder GIF erstellen. Richtig?
0
sonorman
sonorman23.03.0515:10
leBeat

Wir sind drei Leute und wollen einfach eine Informative Seite zu verschiedenen Themen anbieten. Mein Bereich, TechSpeak, befasst sich dabei mit allem was im Bereich Technik interessant sein könnte. Nicht nur in Sachen Foto.

Rafael berichtet im Bereich Entertainment, wie der Name schon vermuten lässt, rund um Unterhaltung. Links zu aktuellen Movie-Trailern, neue interessante Musik u.s.w. Alles in seiner recht jugendlichen "Spreche".

Im LifeBlog verlinken wir alles, was wir an interessanten Sachen im Web so aufspüren. Einfach mal durchsurfen.

Tja, und demnächst gibt's dann hoffentlich auch eine schöne, dreigeteilte Galerie.
0
leBeat
leBeat23.03.0515:14
ah, cool.
mal im auge behalten ...
0
Rantanplan
Rantanplan23.03.0515:14
Das kannst du wunderbar mit Bordmitteln machen:

sips --cropToHeightWidth 200 200 *.jpg

Beschneidet alle Bilder mit Endung .jpg im aktuellen Verzeichnis auf 200x200 Pixel, ausgehend von der Bildmitte. Achtung, die Originale sind danach weg.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
sonorman
sonorman23.03.0515:15
Also mit GraphicConverter komme ich, wie so oft, nicht weiter. Das Teil kann irgendwie alles und nichts.
0
newbie
newbie23.03.0515:16
sonorman
Es gibt nur eine aktuelle GC Version (5.2.2) - die Sprache kannst Du über die Systemeinstellungen ändern.

"Mehrfachkonvertieren" war schon richtig, dort dann unter "Aktionen" die Befehle "Rand anfügen/löschen" und "Skalieren" hintereinander auswählen und anpassen.
0
sonorman
sonorman23.03.0515:18
Rantanplan

Neee, ich will ja nicht Croppen, sondern Thumbnails erstellen.

Murdock

Kapier ich nicht. Kannst Du das bitte näher erläutern? Wie gesagt, ich muss aus meinen großen Originalphotos kleine Thumbs erzeugen, die dann später in einer Flash-basierten Galerie als Übersicht dienen.
0
sonorman
sonorman23.03.0515:20
newbie

Funzt nicht. Wenn ich ein nicht quadratisches Bild zu einem quadratischen Thumb herunterskaliere, werden die Proportionen verzerrt. Schau noch mal auf mein angehängtes Bild unten, wie ich das meine.
0
sonorman
sonorman23.03.0515:22
Ach so, vielleicht etwas unglücklich ausgedrückt: Ich will quasi skalieren UND croppen. Aber nur die Ränder sollen weggeschnitten werden, ohne das dabei die Proportionen verzerrt werden.
0
Maxefaxe23.03.0515:30
Mach eine Photoshopaktion

Bild Skalieren > Breite oder Höhe 200 Pixel
Arbeitsfläche > Höhe 200 Pixel

Hierzu müssen allerdings alle Bilder im Hoch- oder Querformat vorliegen. Du müsstest also die Bilder grob in Hoch und Querformat vorsortieren und dann die entsprechende Aktion drüberrödeln lassen.
0
newbie
newbie23.03.0515:34
sonorman

Also, hier eine genauere GC Anleitung:
- Befehl "Ablage Mehrfachkonvertierung" auswählen (Browser für Mehrfachkonvertierung wird geöffnet)
- Option "Aktion(en) verwenden" auswählen
- auf Button "Aktion" klicken (Browser für Aktionen wird geöffnet)
- Links hast Du alle vorhandenen GC Funktionen, die kannst Du über Doppelklick oder Button "Hinzufügen" in die rechte Liste "Ihre Auswahl" hinzufügen
- bei Funktion "Rand anfügen/löschen" kann man durch Angabe von negativen Werten li/re/ob/un an einem Bild xxx Punkte wegnehmen (also croppen)
- Funktion "Skalieren" ist wohl selbsterklärend...
- "OK" klicken
- dann im Browser eine oder mehrere Dateien in der linken Liste auswählen, in der rechten Liste ein neues(!) Zielverzeichnis festlegen, evt. noch das Zielformat ändern, und zu guter letzt via Funktion "Konvertieren" und Button "Start" (oberste Zeile im Browser) die Dateien umwandeln.

Ich finde dieses GC Handling auch alles andere als intuitiv, aber dafür ist es sehr mächtig...
0
sonorman
sonorman23.03.0515:34
Maxefaxe

THX. Das werde ich mal ausprobieren.
0
MoreliaV
MoreliaV23.03.0515:36
hmm Ja, sehe ich auch so, aber wie am einfachsten ? Für Win gabs mal so was, hiess glaub ich Oscars Thumb Maker.vielleicht mal googeln ob s den auch für OSX gibt ???
„95% aller Computerprobleme befinden sich zwischen Stuhl und Tastatur.“
0
Rantanplan
Rantanplan23.03.0515:44
sonorman

Skalieren ist auch einfach:

sips --resampleWidth 100 *.jpg

Da es vorher schon quadratisch ausgeschnitten war, ist das Bild somit 100x100 Pixel groß.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
sonorman
sonorman23.03.0516:00
newbie

Puh, ich habe das noch mal versucht nachzuvollziehen. Viel zu kompliziert. Ich müsste demnach ja erst ermitteln, wie viele Pixel ich oben und unten, bzw. bei Querformat links und rechts, abschneiden müsste, damit das Bild Quadratisch wird. Voraussetzung ist dann auch, dass alle Originale die gleiche Größe haben, und ich muss auch vorsortieren, nach Hoch- und Querformat.

Ich probiere erst mal Photoshop und Maxefaxes Tip.

Rantanplan
Nix für Ungut, aber auf das Geraffel mit dem Terminal habe ich keinen Bock. Wozu arbeite ich den mit einem Mac?
0
Rantanplan
Rantanplan23.03.0516:10
Ok, du hast keine Lust dazu. Falls jemand mal die Forumssuche bemüht und mit dem gleichen Problem hierher kommt, hier die Lösung des Problems mit Bordmitteln (Kostenaufwand: 0 Euro):

#!/bin/sh

THUMBSIZE=128

if [ -z "$1" ]; then
echo "Usage: thumb [image file(s)]"
exit 1
fi

function makethumbnail ()
{
if [ ! -f "$1" ]; then return 1; fi
local W=$(sips --getProperty pixelWidth $1 | cut -f 2 -s -d ':')
local H=$(sips --getProperty pixelHeight $1 | cut -f 2 -s -d ':')
if [ $W -lt $H ]; then
sips --resampleWidth $THUMBSIZE $1 > /dev/null
else
sips --resampleHeight $THUMBSIZE $1 > /dev/null
fi
sips --cropToHeightWidth $THUMBSIZE $THUMBSIZE $1 > /dev/null
return 0
}

for file in $*; do makethumbnail $file; done
exit 0

Alles in eine Datei "thumb", chmod +x drauf und rödeldidödel, schon geht's los. Für eventuelle Schäden übernehme ich keine Haftung, ich habs zwar ausprobiert, aber es ist ja nur ein Schuß aus der Hüfte. Die Originale werden dabei übrigens überschrieben. Die Thumbnails kann man natürlich auch in extra Dateien ablegen und die Originale in Ruhe lassen, aber dazu war ich jetzt zu faul...
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Rantanplan
Rantanplan23.03.0516:13
Ein paar Zeichen gehen jetzt wieder über den Jordan.... also kommt es nochmal als Screenshot.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
sonorman
sonorman23.03.0516:18
Rantanplan

Das ist natürlich auch klasse.
Kannst Du das vielleicht in ein simples GUI verpacken?

Mit Maxefaxes Methode funktioniert es übrigens auch recht simpel. Man muss nur zwischen Hoch- und Querformat unterscheiden und separate Aktionen dafür definieren. Dann ist's nur noch ein Mausklick pro Bild.

Theoretisch müsste das ganze ja auch mit mehreren im PS Dateibrowser ausgewählten Dateien funktionieren. Mal sehen, ob er das auch aufzeichnen kann...
0
Rantanplan
Rantanplan23.03.0516:30
Eine GUI Das Skript zu schreiben - also die Lösung des Problems - hat ein paar Minuten gedauert. Eine GUI drum herum zu schreiben dauert... im Vergleich dazu ewig... außer hier ist jemand zugegen, der mit ein paar Mausklicks sowas zusammenzimmern kann. Ich kann's nicht, ich löse Probleme, den Job eine GUI zu basteln hasse ich wie die Grätze

Aber hier lesen doch bestimmt ein paar fähige AppleScripter mit, oder? Als Folder action wäre das doch auch nett Bilder nehmen, in den Ordner werfen und schon sind daraus Thumbnails geworden.

Mal kucken, vielleicht finde ich eine Anleitung wie man das macht (ich kann kein Applescript, ich hab's nie kapiert )
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Rantanplan
Rantanplan23.03.0516:36
Ok, ich hab ein Gerüst aus den Folder actions extrahiert, die bei OS X mitgeliefert werden. Nur wie man ein Skript ausführt, das weiß ich nicht. Muß erst im Web suchen.... vielleicht weiß ja jemand wie es geht und schreibt schnell mal die Lösung.

Hier das Gerüst:

on adding folder items to this_folder after receiving these_items
try
repeat with i from 1 to number of items in these_items
set this_item to item i of these_items
-- hier das Skript ausführen
end repeat
on error error_message number error_number
end try
end adding folder items to
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
sonorman
sonorman23.03.0516:37
Rantanplan

'ne Folder Action, genau!
Das wäre echt der Hit. Aber wird das auch funktionieren, wenn unterschiedlich große Originale reingeworfen werden? Oder Hoch- und Querformat gemischt? Müsste man dann die Bilder einzeln da reinwerfen, oder klappt das auch mit mehreren? Fragen über Fragen...

Die Photoshop-Lösung mit den Actions funktioniert zwar, aber mit dem Aufzeichnungsprozess komme ich nicht ganz klar, wenn es um das Öffnen und Sichern mehrerer selektierter Bilder geht.
So isses immer noch relativ viel "Handarbeit"
0
Rantanplan
Rantanplan23.03.0516:39
Nachtrag: man kann auch alles in AppleScript machen. Apple hat ja ein paar Beispiele mitgeliefert, die Images beim Ziehen in den Ordner rotieren, skalieren und so. Aber als AppleScript-Unkundiger bekomme ich alleine vom Ankucken einen Schlaganfall
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Rantanplan
Rantanplan23.03.0516:42
sonorman

Ja, ich hab mein Skript extra so gebaut, daß es Hoch- und Querformat automatisch erkennt. Ist also kein Problem

Man kann meines Wissens einen ganzen Sack voll Bilder nehmen und reinwerfen. Die Bilder werden nacheinander abgearbeitet. Wenn man noch dran denkt, die Alt-Taste beim Ziehen zu halten, dann bleiben die Originale auch bei dieser Einfachlösung erhalten.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
newbie
newbie23.03.0516:46
sonorman
Hatte nie gesagt, daß es mit GC "einfach" ist
Rantanplans Plan (Achtung. Wortspiel.) scheint mir da auch der elegantere Weg...
0
sonorman
sonorman23.03.0516:47
Rantanplan

Wow!
Wenn man das jetzt noch so hinkriegt, dass jeder DAU das verwenden kann, das wäre schon cool.

Habe auch mal im Web nach solchen Tools gesucht, bin aber leider nicht fündig geworden.
0
sonorman
sonorman23.03.0516:49
newbie

Trotzdem vielen Dank für Deine Bemühungen.
0
Rantanplan
Rantanplan23.03.0516:52
Also, ich hab's gefunden. So sollte es gehen:

on adding folder items to this_folder after receiving these_items
try
repeat with i from 1 to number of items in these_items
set this_item to item i of these_items
do shell script "~/bin/thumbs.sh " & (quoted form of POSIX path of this_item)
end repeat
on error error_message number error_number
end try
end adding folder items to

Das obige Shell-Skript muß dazu in dem Verzeichnis bin im eigenen Benutzerordner liegen und thumbs.sh heißen, natürlich ausführbar sein.

So.... und jetzt kommt der Haken daran: es funktioniert nicht Frag mich nicht wieso, ich bin AppleScript-Unkundiger und habe keinen Schimmer, wie man sowas debuggen kann.

Liest hier keiner mit, der AppleScript beherrscht?
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
sonorman
sonorman23.03.0516:59
AppleScript-Profis bitte melden!
0
Rantanplan
Rantanplan23.03.0517:13
Hm, also ich bin jetzt am Ende meines Lateins. Ich hab mal ein "display dialog" eingefügt, um mir den auszuführenden Befehl anzukucken, aber wenn ich das Skript als Folder action mit einem Ordner verbinde, dann geht beim Reinwerfen einer Datei kein Dialog auf. Sprich: das wird anscheinend überhaupt nicht ausgeführt. Jetzt weiß ich nix mehr weiter.

Ich sag's ja: der GUI-Kram frißt die meiste Zeit, deswegen mache ich nie solche Späße
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
sonorman
sonorman23.03.0517:23
Trotzdem schon mal vielen, vielen Dank für Deine Mühe, Rantanplan.
0
Rantanplan
Rantanplan23.03.0517:45
So... nach endlosem Herumgesuche mit Google habe ich ein AppleScript, das ohne das Shell-Script auskommt. Ich habe leider keine anständige Doku von diesen "Image Events" gefunden und mir ist völlig unklar, warum man dort beim Skalieren nicht angeben kann, auf welche Dimension (Breite/Höhe) es sich beziehen soll.

Somit sieht die Folder action nun so aus:

property thumbnail_size : 128

on adding folder items to this_folder after receiving these_items
try
repeat with i from 1 to number of items in these_items
set this_item to item i of these_items
make_thumbnail(this_item)
end repeat
on error error_message number error_number
if the error_number is not -128 then
tell application "Finder"
activate
display dialog error_message buttons {"Cancel"} default button 1 giving up after 120
end tell
end if
end try
end adding folder items to

on make_thumbnail(this_item)
try
set this_item to this_item as string
with timeout of 900 seconds
tell application "Image Events"
launch
set this_image to open file this_item
copy the size of this_image to {width, height}
if width < height then
set scaling_factor to thumbnail_size / width
scale this_image to size height * scaling_factor
else
set scaling_factor to thumbnail_size / height
scale this_image to size width * scaling_factor
end if
crop this_image to dimensions {thumbnail_size, thumbnail_size}
save this_image -- with icon
close this_image
end tell
end timeout
on error error_message
tell application "Finder"
activate
display dialog error_message buttons {"Cancel"} default button 1 giving up after 120
end tell
end try
end make_thumbnail

Nachteil: es tut noch immer nicht. Keine Ahnung warum, es wird scheinbar überhaupt nicht ausgeführt. Da ich Folder actions bislang nie verwendet habe, weiß ich auch nicht wo man da den Fehler suchen muß.

Und immer noch kein AppleScript-Kundiger hier?
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Maxefaxe23.03.0517:53
Die Photoshopaktion lässt sich übrigens auch auf ganze Ordner anwenden. Am besten also Hoch und Quer sortieren und dann über Datei > Automatisieren, Stapelverarbeitung Aktion und Ordner wählen. So muss man nicht nach jedem Bild die Aktion wählen.
0
sonorman
sonorman23.03.0517:59
Das bringt mich wieder ein Stückchen weiter. Danke Maxefaxe!

Nebenbei: Unbedingt mal den dritten Trailer zu "Hitchhikers Guide..." anschauen! @@
0
sonorman
sonorman23.03.0518:02
Rantanplan

Wird ja immer länger.
Size doesn't matter. Das gilt wohl auch für die Länge von Scripten.

Du auch: Zwischendurch mal ein wenig hitchhiken...
0
MoreliaV
MoreliaV23.03.0523:49
Wenn ich das richtig verstanden habe, lassen sich mit iResize auch mehrere Bilder auf einmal in eine frei wählbare Pixelgrösse bringen und in diversen Formaten abspeichern................??
„95% aller Computerprobleme befinden sich zwischen Stuhl und Tastatur.“
0
Murdock23.03.0515:14
Soll das Serverseitig geschehen oder auf einem heimischen Mac? Wenn es auf dem heimischen Mac sein soll, dann ist Galerie (unter MTN Updates) zu empfehlen, da kannst du eigen HTML-Vorlagen einbinden ...
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.