1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Automatoraktion bearbeiten

Dieses Thema im Forum "Grafikbearbeitung & Layout" wurde erstellt von Spirit, 02.07.07.

  1. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Hallo

    ich habe gerade den Automator entdeckt und das ist ja ein ganz nettes Spielzeug. Die Aktion die ich verwenden will ist "Bildgröße anpassen" aber ich möchte keinen schwarzen Hintergrund sondern einen weißen... kann ich das Skript oder was hinter der Aktion steht so verändern, dass ich einen weißen Rand bekomme?

    Besten Dank
     
  2. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Was für ein schwarzen Hintergrund?
    Den mit dem Hund in der Automator-Aktion?

    Gruss
     
  3. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Ja genau den. Da will ich einen weißen Hintergrund haben...
     
  4. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Na Du bist lustig … der ist doch nur für die Optik, damit klar wird, was mit dem Bild passiert.

    /System/Library/Automator/Pad Images.action/Contents/Resources/A-1205-noscale.jpg
    /System/Library/Automator/Pad Images.action/Contents/Resources/A-1205-scale.jpg

    durch Fotos deiner Wahl austauschen (Bildgrösse beachten) oder bearbeiten

    Um es zu speichern, dem Ordner Pad Images.action Schreibrechte erteilen

    Gruss
     
  5. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Wenn Bilder in dem Format 4:3 sind ich sie aber 250x250 brauche dann macht er mir bei Hochformat rechts und links nen schwarzen Balken, ich brauch da aber nen weißen. Probiers aus. ;)
     
  6. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Also wolltest Du doch gar nicht den Hund ändern, sondern das Ergebniss der Automator-Aktion … deshalb hatte ich gefragt.

    Über den Sinn deiner Aktion frage ich nicht - mit "Bilder skalieren" hättest Du jedenfalls keinen Rahmen…

    Dann ran ans Werk. Developer Tools installieren, die Automator-Aktion bearbeiten und als weitere Aktion speichern.

    Anleitungen findest Du im Netz

    Gruss
     
  7. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Ja da hab ich mich wohl nicht ganz richtig ausgedrückt...

    Soll das heißen das ich das Skript nicht bearbeiten kann oder das des mit dem Developer Tool geht?

    Mit dem Skripteditor lässt sich das Skript nämlich nicht öffnen das es als nur ausführbar gespeichert worden ist...
     
    #7 Spirit, 02.07.07
    Zuletzt bearbeitet: 02.07.07
  8. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Ja und wir kommen der Sache näher …

    Es war vorhin etwas sehr rotzig ausgedrückt, dass Du dir eine Aktion selber erstellen müsstest. Mit einer schon vorhandenen Automator-Aktion hättest Du eine Vorlage … mehr nicht.
    Die eigentlichen Befehle der Aktionen sind schwer auf dem Mac versteckt und geschützt. Warum? Damit stellt sich Apple selber ein Bein, wie ich finde.

    Allerdings würde dir das auch nicht wirklich weiterhelfen, denke ich, da in diesem Fall das Programm Image Events benutzt wird, um das Pad-Image zu erstellen.
    Die Bibliothek-Bezeichnung Vorschau irritiert, ist Vorschau selber ja gar nicht skriptfähig
    Na ja und Image Events erstellt halt schwarze Streifen … ist so programmiert.

    Mir fallen zwar ein paar Dinge ein, wie man im Nachhinein die schwarzen Balken ändern könnte, aber das war ja nicht Gegenstand deiner Frage.

    Sorry

    Hier mal ein Skript, welches den Automatorablauf etwas simuliert … naja nicht ganz, aber der Teil mit dem schwarzen Rahmen ist der wichtige.
    Es gibt nur "pad" als Befehl … ohne weitere Farb-Zusatzwünsche

    Code:
    property openTypes : {"PDF", "com.adobe.pdf", "BMP", "com.microsoft.bmp", "JPEG", "JPEG2", "jpg", "public.jpeg", "PICT", "com.apple.pict", "PNG", "public.png", "PSD", "com.adobe.photoshop-image", "TIFF", "public.tiff"}
    
    
    set theFiles to choose file with prompt "Wähle das oder die Bilder aus" of type openTypes with multiple selections allowed without invisibles
    
    set fileCopy to display dialog "Das oder die Bilder vorher kopieren?" buttons {"Ja", "Nein"} default button 2 with icon 0
    if button returned of fileCopy is "Ja" then
    	tell application "Finder" to duplicate theFiles
    end if
    
    
    runConversion(theFiles)
    
    on open someFiles
    	runConversion(someFiles)
    end open
    
    on runConversion(theItems)
    	
    	set Y to display dialog "Neue Höhe" default answer "200"
    	set heightY to text returned of Y as integer
    	
    	set X to display dialog "Neue Weite" & return & "(Wenn der Wert Null ist, so wird das Bild proportional zur Höhe skaliert!)" default answer "0"
    	set widthX to text returned of X as integer
    	
    	set n to 3
    	repeat
    		set pX to display dialog "Und jetzt die SCHWARZE Rahmenweite" default answer "300"
    		set padX to text returned of pX as integer
    		if padX < widthX + 1 then
    			set n to n - 1
    			display dialog "Der Rahmen muss natürlich größer als " & widthX & " sein!"
    			
    			if n < 1 then
    				display alert "Fangen wir noch mal an!"
    				quit
    			end if
    		else
    			exit repeat
    		end if
    	end repeat
    	
    	set pY to display dialog "Und noch die SCHWARZE Rahmenhöhe" default answer padX
    	set padY to text returned of pY as integer
    	
    	tell application "Image Events"
    		launch
    		set newHeight to heightY
    		set newWidth to widthX
    		if (count items of theItems) is greater than 0 then
    			repeat with anItem in theItems
    				set imageFile to (open anItem)
    				set theSize to dimensions of imageFile
    				set width to item 1 of theSize
    				set height to item 2 of theSize
    				set ratio to (width / height)
    				set newWidth to (ratio * newHeight) as integer
    				if newHeight > newWidth then
    					scale imageFile to size newHeight
    				else
    					scale imageFile to size newWidth
    				end if
    				
    				-- und jetzt der schwarze Rahmen
    				pad imageFile to dimensions {padX, padY}
    				
    				save imageFile as JPEG
    				close imageFile
    			end repeat
    		else
    			display dialog "Nothing to convert."
    		end if
    	end tell
    end runConversion
     
  9. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Hi

    Danke für die überaus ausführliche antwort. Ich hoffe du hast dir nicht extra die Zeit genommen das ganze Skript selber zu schreiben!
    Also wenn ich das richtig verstanden habe, dann gibt es keine möglichkeit statt den schwarzen weiße balken zu machen. Aber trotzdem danke für den Einblick ins Skripten, wer weiß vielleicht kann ich das ja noch gebrauchen.

    Besten Dank
     
  10. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Na ja … sagen wir mal 50% sind von mir :p
    Hier gibt es ein Image Event Tutorial, nach dem ich mich gerichtet habe

    Gruss
     
  11. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Upps!
    Weisse Rahmen gehen doch!
    Wenn man nämlich statt JPG ein TIFF oder ein PNG nimmt (Mit weiteren Formaten habe ich es nicht getestet)!

    Funktioniert wohl nicht im Automator (oder o_O ?) aber zumindest mit AppleScript:

    Habe das obrige AS mal als Droplet umgeschrieben und etwas verfeinert:
    Jetzt gibt man die neue Weite/Höhe an (das Bild wird nach dem GRÖSSEREN der beiden Werte skaliert) und zusätzlich kann man die Größe des Rahmens um das Bild angeben…

    Code:
    on open theFiles
    	
    	set fileCopy to display dialog "Das oder die Bilder vorher kopieren?" buttons {"Ja", "Nein"} default button 2 with icon 0
    	if button returned of fileCopy is "Ja" then
    		tell application "Finder" to duplicate theFiles
    	end if
    	
    	
    	set X to display dialog "Neue Weite" default answer "200"
    	set widthX to text returned of X as integer
    	
    	set Y to display dialog "Neue Höhe" default answer "0"
    	set heightY to text returned of Y as integer
    	
    	set pX to display dialog "Zusätzliche Rahmenweite" default answer "100" as integer
    	set padX to text returned of pX as integer
    	
    	set pY to display dialog "Zusätzliche Rahmenhöhe" default answer padX - 50
    	set padY to text returned of pY as integer
    	
    	
    	tell application "Image Events"
    		launch
    		set newWidth to widthX
    		set newHeight to heightY
    		if (count items of theFiles) is greater than 0 then
    			repeat with anItem in theFiles
    				set imageFile to (open anItem)
    				set theSize to dimensions of imageFile
    				set width to item 1 of theSize
    				set height to item 2 of theSize
    				set ratio to (width / height)
    				set newHeight to (ratio * newWidth) as integer
    				if newWidth > newHeight then
    					scale imageFile to size newWidth
    				else
    					scale imageFile to size newHeight
    				end if
    				
    				pad imageFile to dimensions {padX + newHeight, padY + newWidth}
    				
    				save imageFile as JPEG
    				close imageFile
    			end repeat
    		end if
    	end tell
    end open
    Als Programm(-Bundle) speichern und das/die Bilder raufziehen

    Gruss
     
  12. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    *Mundoffensteh*

    Also das ist ja unglaublich! Vielen Dank für die Arbeit ich meine... ich kann es nicht glauben das du dir so viel Mühe machst, Danke!

    Damit habe ich jetzt überhaupt nicht gerechnet sonst hätte ich dir vielleicht erst mal erklärt warum ich sowas brauche. Und zwar lässt sich mit Photoshop nette Bildergalerien erstellen. Das habe ich mit einer größeren Anzahl an Bilder gemacht und als ich fertig war habe ich gemerkt das es ein Problem gibt. Man kann zwar im Nachhinein einiges verändern aber man kann die Bilder nicht zentrieren und wenn man nun unterschiedliche Formate hat dann hüpft die Navigation fleissig durch die Gegend. Einzige Möglichkeit das zu beheben ist es den Bildern alle die gleiche größe zu geben und darum brauche ich eben einen weißen Rand, damit es so aussieht als wären die Bilder schön zentriert.
    Mein "Bilderrahmen" ist 350x350 und genau so groß sollen die Bilder sein.

    Ich habe dein Script mal mit einem tiff versucht aber irgendwie hat das nicht so richtig gewollt. Zum einen ist es wieder als tiff gespeichert worden und zum anderen war der Rahmen wieder schwarz.
    Wie genau hast du denn das gemacht und könnte man erst noch einen Befehl einbauen das ein jpg in ein tiff umgewandelt wird, skaliert wird und dann wieder als jpg gespeichert?

    Nochmal vielen Dank, wenn das klappen würde, wäre ich überaus glücklich denn ich hab ein paar hundert Bilder die angepasst werden müssen.

    Kann man eigentlich Orden beantragen? Du hättest sicher einen verdient!

    Beste Grüße
     
  13. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Du hast recht, es geht nicht mit allen TIFF o_O
    Ich werde mal versuchen, herauszubekommen woran das liegt.

    Edit:
    Also, wenn man das Bild vorher in das PICT Format wandelt, und es dann auf das Droplet zieht, so funktioniert es bei mir mit jedem Bild (Eventuell auch noch mit anderen Formaten)
    Um es als JPG zu speichern, müsste man das Skript erweitern. Werde ich mir mal heute abend eventuell mal anschauen …

    Da Du anfangs geschrieben hast, dass Du den Automator gerade für dich entdeckt hast, wäre das gleich mal eine richtige Aufgabe für dich, denn mit dem Automator kann man Workflows erstellen, die das Bildformat (auch in PICT) ändern.
    Er kann auch direkt AppleSkripte ausführen …

    Doch der Ablauf, der dir vorschwebt, bedarf etwas Tüftelei.
    Mit etwas Fantasie und Fummelei lässt sich da aber was basteln

    Gruss
     
    #13 space, 05.07.07
    Zuletzt bearbeitet: 05.07.07
  14. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Hi,

    also mit PICT geht es und einen Arbeitsablauf kann ich auch erstellen. Problem ist nur das wenn ich das Skript mit copy und past in ein "führe Apple Script" Fenster kopiere er das Skript nicht mehr ausführen kann. Ich hab zwar mal versucht das open durch run zu ersetzten aber dann kennt er plötzlich die Variablen nicht mehr...

    ich meine das Script ist klasse und spart mir endlich viel arbeit aber eleganter wäre es natürlich wenn ich es in den Automator einbauen könnte.

    hier das Script wie ich es mir angepasst habe.

    Code:
    on open theFiles
    	
    	set X to "350" as integer
    	
    	set Y to "350" as integer
    	
    	tell application "Image Events"
    		launch
    		set newWidth to X
    		set newHeight to Y
    		if (count items of theFiles) is greater than 0 then
    			repeat with anItem in theFiles
    				set imageFile to (open anItem)
    				set theSize to dimensions of imageFile
    				set width to item 1 of theSize
    				set height to item 2 of theSize
    				set ratio to (width / height)
    				set newHeight to (ratio * newWidth) as integer
    				if newWidth > newHeight then
    					scale imageFile to size newWidth
    				else
    					scale imageFile to size newHeight
    				end if
    				
    				pad imageFile to dimensions {350, 350}
    				
    				save imageFile as JPEG
    				close imageFile
    			end repeat
    		end if
    	end tell
    end open
    Am Ende vom Script ist doch ein save as JPEG warum macht er das denn dann nicht?

    Nochmal vielen Dank für die Hilfe!
     
    MasterDomino gefällt das.
  15. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Ja das "as JPEG" ist … hüstel … tiefere AS-Logik.
    (Wobei egal ist, ob da JPEG, PNG oder PICT usw. steht)
    Man kann es auch weglassen, nur dann werden die Rahmen durchsichtig und nicht weiß. :-D
    Sprich, es hat keineei Convert-Funktion. Diese ist doch etwas aufwendiger zu realisieren.
    Schau dir mal das erste Skript auf der von mir weiter oben verlinkten Seite an, dann wird es eventuell klarer.

    Gruss
     
  16. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Also das mit den AS ist mir leider nicht so wirklich klar geworden aber ich habe es jetzt hinbekommen. Leider nicht als einheitlichen Automatorablauf aber fast. Im Script habe ich noch eine Änderung vorgenommen, querformatige Bilder hat er auch auf die Höhe skaliert was ich aber nicht wollte.

    Hier mal für alle die es interessiert warum und was ich gemacht habe.

    PhotoShop bietet unter Datei -> Automatisierung "Web Fotogalerien" an. Wenn man die Metadaten seiner Bilder ausgefüllt hat (in Bridge Apfel+Opt+Shift+I) in erste Linie den Titel, dann lassen sich so ganz nette Galerien erstellen.
    Die Flashgalerie hat nur leider einen Nachteil. Die Navigation ist dierekt unter dem Bild und wenn man nun hoch und querformatige Bilder hat hüpft die Navigation immer fleissig durch die Gegend. Lösung alle Bilder müssen die gleiche Höhe und Breite haben.

    Dies macht man per Hand oder wenn man mehr Bilder hat und schlau sein will mit einem Script:
    Mit dem Automator erst alle Bilder in PICT formatieren (Automator aus Bibliotek Vorschau wählen und dann aus Aktion Bildtyp ändern).
    Dieses Script erstellen (in Skripteditor einfügen und als Programm-Bundle speichern):
    Code:
    on open theFiles
    	
    	set X to "350" as integer
    	
    	set Y to "350" as integer
    	
    	tell application "Image Events"
    		launch
    		set newWidth to X
    		set newHeight to Y
    		if (count items of theFiles) is greater than 0 then
    			repeat with anItem in theFiles
    				set imageFile to (open anItem)
    				set theSize to dimensions of imageFile
    				set width to item 1 of theSize
    				set height to item 2 of theSize
    				set ratio to (width / height)
    				
    				if width > height then
    					scale imageFile to size newWidth
    				else
    					scale imageFile to size newHeight
    				end if
    				
    				pad imageFile to dimensions {350, 350}
    				
    				save imageFile as JPEG
    				close imageFile
    			end repeat
    		end if
    	end tell
    end open
    Alle gewünschten Dateien auswählen (z.B. in der Finder Suchfunktion nach .pct suchen) und auf das erstellte Script ziehen.
    Wenn das Script durchgelaufen ist wieder mit dem Automator die Dateien in .jpg umwandeln oder so lassen und mit PhotoShop das Webalbum erstellen. Nicht vergessen für die Größe 350px (oder was ihr um Script gewählt habt) einzustellen.

    Nun sind die Bilder alle schön zentriert und das Webalbunm sieht einfach klasse aus. In den von PS erstellen html Dateien können noch weitere Veränderungen vorgenommen werden um das Album in die Homepage einzupassen.

    Viel Spaß
     
  17. space

    space Neuer Berner Rosenapfel

    Dabei seit:
    02.12.05
    Beiträge:
    1.950
    Gut, dass Du mal rausgerückt hast, wozu Du die Bilder brauchst.

    Dann kann man nämlich vereinfachen. Wie schon geschrieben, skaliert Image Event nach dem grösseren Wert … es reicht also einer.
    Desweiteren findet man übrigens auf den Apple-Seiten eine Reihe Image Event-Beispielskripte.
    Damit ist es nicht so schwer, sich deinen gewünschten Ablauf zusammenzuschustern:
    Ich lege mal vor:
    Code:
    set this_files to choose file with multiple selections allowed without invisibles
    repeat with this_file in this_files
    	
    	try
    		tell application "Image Events"
    			launch
    			
    			set the parent_folder to the container of this_file
    			set the new_name to my add_extension(this_file, "pct")
    			
    			if (exists file new_name of the parent_folder) then
    				error "Die Datei “" & new_name & "” existiert bereits :)"
    			end if
    			
    			set this_image to open this_file
    			set the new_image to save this_image as PICT in file new_name of the parent_folder with icon
    			close this_image
    			
    		end tell
    		
    		-- mit oder ohne Original löschen?
    		(*tell application "Finder"
    			delete this_file
    		end tell*)
    		
    	on error error_message
    		display dialog error_message
    	end try
    	
    	
    	try
    		tell application "Image Events"
    			launch
    			
    			set this_image to open new_image
    			scale this_image to size 350
    			pad this_image to dimensions {350, 350}
    			save this_image as JPEG
    			close this_image
    		end tell
    	on error error_message
    		display dialog error_message
    	end try
    end repeat
    
    on add_extension(this_image, new_extension)
    	set this_info to the info for this_image
    	set this_name to the name of this_info
    	set this_extension to the name extension of this_info
    	if this_extension is missing value then
    		set the default_name to this_name
    	else
    		set the default_name to text 1 thru -((length of this_extension) + 2) of this_name
    	end if
    	return (the default_name & "." & the new_extension)
    end add_extension
    
    Diesmal als Choose-Skript, da es wohl für dein Vorhaben vorteilhafter ist, als ein Droplet.
     
  18. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Ich hab mich jetzt doch noch mal an das Skript gemacht und eine sehr einfach aber feine Lösung gefunden. Einfach das Format in der if Schleife via
    in ein Pict verwandelnd padden und wieder mit
    in ein jpg verwandeln. Geht ohne Probleme.
     
  19. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    Hallo Spirit! :)

    Du hast erst nach über einem Jahr versucht, das von space geschriebene Skript zu vollenden?
    Das ist lustig ... denn seit Leopard kann man mit AppleScript direkt die Farbe des Rahmens bestimmen :)

    Schau dir doch mal die Rahmen auf dieser Seite an: Klick

    Sedna
     
  20. Spirit

    Spirit Wohlschmecker aus Vierlanden

    Dabei seit:
    16.11.05
    Beiträge:
    237
    Hallo Sedna,

    danke für den Tip. Aber das ist nicht das was ich brauche. Ich will keinen Rahmen sondern nur das oben und unten mit weiß aufgefüllt wird. Außerdem steht in dem Skript, dass das pad with color unter 10.5.5 nicht geht.

    Aber ich werde das mal weiter beobachten, dass mit dem Rahmen ist ja so auch mal ne gute Idee.
     

Diese Seite empfehlen