• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick

Automatoraktion bearbeiten

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
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
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
Was für ein schwarzen Hintergrund?
Den mit dem Hund in der Automator-Aktion?

Gruss
 

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
Ja genau den. Da will ich einen weißen Hintergrund haben...
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
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
 

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
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. ;)
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
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
 

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
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...
 
Zuletzt bearbeitet:

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
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
 

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
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
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
Na ja … sagen wir mal 50% sind von mir :p
Hier gibt es ein Image Event Tutorial, nach dem ich mich gerichtet habe

Gruss
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
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
 

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
*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
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
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
 
Zuletzt bearbeitet:

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
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!
 
  • Like
Reaktionen: MasterDomino

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
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
 

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
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ß
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
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.
 

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
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
save imageFile as PICT
in ein Pict verwandelnd padden und wieder mit
save imageFile as JPEG
in ein jpg verwandeln. Geht ohne Probleme.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.368
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
 

Spirit

Zuccalmaglios Renette
Registriert
16.11.05
Beiträge
257
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.