Wie icc-Farbprofil stapelweise in Bilder einbetten ?

*shootingstar

Aktives Mitglied
Thread Starter
Dabei seit
19.08.2003
Beiträge
388
Reaktionspunkte
6
Hallo, ich habe versucht, eine Stapelverarbeitung zu erstellen, die mir ein icc-Farbprofil in Bilder einbindet.
Damit diese in Safari bunt und nicht farbschwach dargestellt werden.

Leider wird das Farbprofil-Häkchen im Speicherfenster bei der Stapelverarbeitung nicht erfasst. Photoshop ( OK, ich habe nur CS 1 )
speichert in der Stapelverarbeitung immer ohne Profil ab. :(

Kennt Jemand eine Möglichkeit, diesen Vorgang außerhalb von Photoshop
vorzunehmen ? Ein Tool wäre toll. :eek: Kann der Automator das irgendwie ?

Ach ja, ich glaube, CS3 kann auch applets schreiben wie ImageReady.
Habe ich aber leider nicht.
Und ImageReady CS1 schert sich imho nicht um ICC …

MFG *shootingstar
 
Also,

1. das häkchen wird berücksichtigt - wenn möglich.
Das heißt, wenn dein bild kein zugewiesenens Profil besitzt, also in Ps per Arbeitsbereicht Profil dargestellt wird (unten links steht evtl. 'RGB ohne Tags' und in der Bildleiste steht am Ende '(RGB/8#)', dann kann beim sichern kaum ein Profil mitgesichert werden, weil einfachnciht definiert wurde, welches. Das eher notgedrungen, temporär zugewiesene Arbeitsfarbraum-Profil wäre keine gute Idee, da plötzlich ein Profil am Bild hängt das _niemand_ willentlich dort hin haben wollte.

2. Das ganze geht auch per von Apple mitgelieferter Applescripte, in deinem Fall wäre es z.B. dieses:
/Library/Scripts/ColorSync/Embed specific profile.app
 
Ein wirklich toller Tipp ! Danke ! :eek:

Allerdings habe ich leider noch nie mit Scripts gearbeitet.
Ich kann mit dem beschriebenen Script EINE Datei mit Profil versehen.

Zwei Fragen:
1. Wie mache ich das nun in der Stapelverarbeitung möglich ?
2. Wie kann ich dem Script sagen, daß es ein ECI-RGB-v2.icc-Profil anstatt des Standard-RGB-Profils einbettet ?

MFG *shootingstar
 
Ich kann mit dem beschriebenen Script EINE Datei mit Profil versehen.
...
1. Wie mache ich das nun in der Stapelverarbeitung möglich ?
Du kannst einen ganzen Ordner oder auch mehrere ausgewählte Bilder im Finder auf das Script fallen lassen.


2. Wie kann ich dem Script sagen, daß es ein ECI-RGB-v2.icc-Profil anstatt des Standard-RGB-Profils einbettet ?
Entweder machst du dir eine Kopie des Scripts und änderst mit dem Scripteditor die Zeile
Code:
	tell application "ColorSyncScripting" to embed thisFile with source profile "Generic RGB Profile"
in
Code:
	tell application "ColorSyncScripting" to embed thisFile with source profile "ECI-RGB-v2.icc"

Oder du nimmst das Script im selben Ordner Namens "Embed chosen profile", welches dich immer zuerst fragt welches Profil in das/die Bild(er) eingebettet werden soll.

Zu meiner im ersten Post angemerkten PS Methode ist vieleicht noch hinzuzufügen, dass du eben bei Bildern die kein Profil haben vor dem erneuten Sichern ein Profil explizit zuweisen musst, damit dieses auch mitgesichert werden kann.


MfG

ThoRic
 
Du kannst einen ganzen Ordner oder auch mehrere ausgewählte Bilder im Finder auf das Script fallen lassen.
OK, das habe ich auch gerade herausgefunden. :)

Ich habe das Script dupliziert, mit dem scripteditor verändert und das ECI-Profil in der System-Library hinzugefügt.
Nun läuft nach Drop des Bilderstapels das Script durch die Dateien durch,
aber wenn ich die Bilder auf Profil hin überprüfe, ist keines angefügt worden. Warum ?
Anmerkung: Das mache ich so, daß ich ein Bild im PS öffne
und 'speichern unter' wähle. ist eins drin, wird es angezeigt
… PS … Gibt es sinnvollere Möglichkeiten, eine Datei auf Farbprofil zu prüfen ?

Zu meiner im ersten Post angemerkten PS Methode ist vieleicht noch hinzuzufügen, dass du eben bei Bildern die kein Profil haben vor dem erneuten Sichern ein Profil explizit zuweisen musst, damit dieses auch mitgesichert werden kann.
Hm. Genau deshalb ist es ja so mühsam über PS Profile hinzuzufügen.
Immer nur einzeln mit drei Klicks und einmal Return … :(

MFG *shootingstar
 
edit … Ich bin's zufrieden. :)
'embed chosen profile.app' macht genau, was es soll.
Wahrscheinliich habe ich das 'specific'-script nicht korrekt umgeschrieben. :eek:

Ein schallendes D-A-N-K-E ! :pepp:

MFG *shootingstar
 
Du kannst einen ganzen Ordner oder auch mehrere ausgewählte Bilder im Finder auf das Script fallen lassen.



Entweder machst du dir eine Kopie des Scripts und änderst mit dem Scripteditor die Zeile
Code:
	tell application "ColorSyncScripting" to embed thisFile with source profile "Generic RGB Profile"
in
Code:
	tell application "ColorSyncScripting" to embed thisFile with source profile "ECI-RGB-v2.icc"

Oder du nimmst das Script im selben Ordner Namens "Embed chosen profile", welches dich immer zuerst fragt welches Profil in das/die Bild(er) eingebettet werden soll.

Zu meiner im ersten Post angemerkten PS Methode ist vieleicht noch hinzuzufügen, dass du eben bei Bildern die kein Profil haben vor dem erneuten Sichern ein Profil explizit zuweisen musst, damit dieses auch mitgesichert werden kann.

PS… Das zweite Bild enthält keine Änderung ! Wie meinen ? :)
 
PS… Das zweite Bild enthält keine Änderung ! Wie meinen ? :)
Wie meinen? Das ist genau das, was ich mich auch gerade frage...

welches 2. Bild?
Das per Script geänderte?
Hier hat er es, vorhin als ich es mit einem kleinen Musterordner mit 5 verschiedenen RGB Profilen in JPEG und TIFF Bildern, anstandslos gemacht.

Oder bezieht sich das auf deine Versuche, das per PS Aktion hinzubekommen?
 
So weist man mit Automator ein ICC-Profil zu, hier das eingestellte Display-Profil (bitte nach Bedarf austauschen). Außerdem wird „ ICC“ an den Namen angehängt und die Datei bekommt ein grünes Label:

(Script zum Kopieren kommt nach dem Bild)

AutomatorICC.PNG


Hier das Apple-Script:
Code:
on run {draggedItems, parameters}
	
	set embedProf to POSIX file "/Users/gerhard/Library/ColorSync/Profiles/Displays/iMac-00000610-0000-9CB5-0000-000004272D40.icc"
	
	repeat with thisFile in (draggedItems as list)
		try
			-- use 'sips --embedProfile' to embed the specified profile
			-- or use 'sips --embedProfileIfNone' to embed the specified profile only if the image doesn't have an embeded profile
			set profPath to quoted form of POSIX path of embedProf
			set filePath to quoted form of POSIX path of thisFile
			set cmdLine to ("sips --embedProfileIfNone " & profPath & " " & filePath) as string
			do shell script cmdLine
		end try
	end repeat
	
	return draggedItems
end run
 
Hier eine weitere Version:

Jetzt wird nach der Profilzuweisung auch noch eine Profilkonvertierung vorgenommen:

Code:
on run {draggedItems, parameters}
	
	-- Dateinamen für Etikettenvergabe retten
	set Ausgabe to draggedItems
	
	-- Hier wird das Profil eingestellt welches zugewiesen werden soll
	-- (in diesem Falle das Displayprofil)
	set embedProf to POSIX file "/Users/gerhard/Library/ColorSync/Profiles/Displays/iMac-00000610-0000-9CB5-0000-000004272D40.icc"
	
	-- Hier wird eingestellt in welches Profil konvertiert werden soll
	-- (hier soll ind AppleRGB.icc konvertiert werden)
	set targetProf to POSIX file "/Library/ColorSync/Profiles/AppleRGB.icc"
	
	repeat with thisFile in (draggedItems as list)
		try
			-- use 'sips --embedProfile' to embed the specified profile
			-- or use 'sips --embedProfileIfNone' to embed the specified profile only if the image doesn't have an embeded profile
			set profPath to quoted form of POSIX path of embedProf
			set filePath to quoted form of POSIX path of thisFile
			set cmdLine to ("sips --embedProfileIfNone " & profPath & " " & filePath) as string
			do shell script cmdLine
			
			-- Von hier ab wird die Profilkonvertierung vorgenommen …
			set profPath to quoted form of POSIX path of targetProf
			set cmdLine to ("sips --matchTo " & profPath & " " & filePath) as string
			do shell script cmdLine
			-- … bis hier.
			
		end try
	end repeat
	
	return Ausgabe
end run
 
Zurück
Oben Unten