Nehmen wir an, ich habe 100 Fotos in einem Ordner. Beim ersten möchte ich das Hue
in ändern -180
und speichern. Beim zweiten möchte ich das ändern Hue
in -170
. Beim dritten möchte ich das Hue
in ändern -160
und so weiter.
Gibt es eine Möglichkeit, jedes Mal eine Stapelverarbeitung mit einem anderen Wert durchzuführen?
Ich würde wahrscheinlich ImageMagick verwenden .
Es gibt eine Funktion zum Ändern des Farbtons, die jedoch prozentual und nicht gradbasiert ist.
Farbtonmodulation
Dreht die Farben des Bildes zyklisch. Um dies zu erreichen, erzeugt der angegebene Farbtonwert eher eine „Moduladdition“ als eine Multiplikation. Beachten Sie jedoch, dass der Farbton mit einem Prozentsatz und nicht mit einem Winkel gedreht wird.
convert rose: -modulate 100,100,0 mod_hue_0.gif convert rose: -modulate 100,100,33.3 mod_hue_33.gif convert rose: -modulate 100,100,66.6 mod_hue_66.gif convert rose: -modulate 100,100,100 mod_hue_100.gif convert rose: -modulate 100,100,133.3 mod_hue_133.gif convert rose: -modulate 100,100,166.6 mod_hue_166.gif convert rose: -modulate 100,100,200 mod_hue_200.gif
Ergebnis:
![]()
![]()
![]()
![]()
![]()
![]()
In diesem Beispiel wird die meiste schwere Arbeit für Sie erledigt, Sie müssten nur ein Skript erstellen, das alle Dateien in einem Verzeichnis indiziert und einen sequenziellen Wert anwendet, der dem modulate-Argument gegeben wird.
Dies könnte mit PS-Scripting erreicht werden. Da es sich um eine ziemlich einzigartige Anfrage handelt, haben Sie möglicherweise Probleme, ein vorhandenes Skript zu finden, das dies tut. Sie müssten es wahrscheinlich entweder selbst codieren oder jemanden einstellen, der es für Sie tun kann.
Ich habe ein Skript, das genau das tun wird. Speichern Sie es einfach als etwas wie changeHuePerLayer.jsx
und ziehen Sie es per Drag & Drop auf das Photoshop-Dock-Symbol auf dem Mac. Unter Windows müssen Sie es meiner Meinung nach über das Menü öffnen (nicht sicher, wo).
#target photoshop
app.bringToFront();
var
LOWER_HUE_LIMIT = -180,
UPPER_HUE_LIMIT = 180;
var
hueValue = LOWER_HUE_LIMIT,
hueIncrementor = 10,
currentDoc = app.activeDocument;
for ( var i = 0; i < currentDoc.layers.length; i++ ) {
currentDoc.activeLayer = currentDoc.layers[i];
hueValue = hueValue < UPPER_HUE_LIMIT ? hueValue + hueIncrementor : LOWER_HUE_LIMIT;
applyHsl( hueValue, 0, 0 );
}
/**
*
* @param {number} hue
* @param {number} saturation
* @param {number} lightness
*/
function applyHsl( hue, saturation, lightness ) {
var HUE_SAT_ADJUSTMENT_V2_SYM = 'Hst2';
var COLORIZE_SYM = 'Clrz';
var ADJUSTMENT_SYM = 'Adjs';
var HUE_SYM = 'H ';
var SATURATION_SYM = 'Strt';
var LIGHTNESS_SYM = 'Lght';
var HUE_SATURATION_SYM = 'HStr';
var colorizeDescriptor = new ActionDescriptor();
var hueSatDescriptor = new ActionDescriptor();
var hueSatAdjustmentList = new ActionList();
colorizeDescriptor.putBoolean( charIDToTypeID( COLORIZE_SYM ), false );
hueSatDescriptor.putInteger( charIDToTypeID( HUE_SYM ), hue );
hueSatDescriptor.putInteger( charIDToTypeID( SATURATION_SYM ), saturation );
hueSatDescriptor.putInteger( charIDToTypeID( LIGHTNESS_SYM ), lightness );
hueSatAdjustmentList.putObject( charIDToTypeID( HUE_SAT_ADJUSTMENT_V2_SYM ), hueSatDescriptor );
colorizeDescriptor.putList( charIDToTypeID( ADJUSTMENT_SYM ), hueSatAdjustmentList );
executeAction(
charIDToTypeID( HUE_SATURATION_SYM ),
colorizeDescriptor,
DialogModes.NO
);
}
Scott