Skip to content

Instantly share code, notes, and snippets.

@freeonterminate
Created May 6, 2021 15:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save freeonterminate/666d4f47b83594d82c9915f5e0098815 to your computer and use it in GitHub Desktop.
Save freeonterminate/666d4f47b83594d82c9915f5e0098815 to your computer and use it in GitHub Desktop.
Photoshop layer color label changer
// Toggle Color Label
//
// ABOUT
// Change color label.
// None → Red → Orange → Yellow → Green
// → Blue → Violet → Gray → None
//
// LICENSE
// Copyright (c) 2021 twitter:@pik
// Released under the MIT license
// http://opensource.org/licenses/mit-license.php
//
// HISTORY
// 2021/05/06 1.00 Release.
//
/*
<javascriptresource>
<name>色ラベルの変更 / Toggle Color Label</name>
<about>
Toggle Color Label
Version 1.00
Copyright (c) 2021 @pik.
</about>
</javascriptresource>
*/
#target photoshop
$.level = 0;
$.localize = true;
const msgErrBackground = {
en: "Color labels cannot be set for the background layer",
ja: "背景レイヤーには色ラベルを設定できません"
};
(function(){
try
{
var doc = app.activeDocument;
if (doc.activeLayer.isBackgroundLayer)
{
alert(msgErrBackground);
return;
}
}
catch(e)
{
return;
}
const colors = [
"none",
"red" ,
"orange",
"yellowColor",
"grain",
"blue" ,
"violet",
"gray",
];
try
{
// 現在のカラーラベルの取得
var ref = new ActionReference();
ref.putEnumerated(
charIDToTypeID("Lyr "), // Layer
charIDToTypeID("Ordn"), // Ordinal
charIDToTypeID("Trgt") // TargetEnum
);
var desc = executeActionGet(ref);
var curColor =
typeIDToStringID(desc.getEnumerationValue(stringIDToTypeID('color')));
// 設定するカラーラベルの取得
var index = 0;
var len = colors.length;
for (var i = 0; i < colors.length; i++)
{
if (curColor == colors[i])
{
index = i + 1;
break;
}
}
if (index == len)
index = 0;
var newColor = colors[index];
// カラーラベルの設定
var descColor = new ActionDescriptor();
descColor.putEnumerated(
charIDToTypeID('Clr '), // Color
charIDToTypeID('Clr '), // Color
stringIDToTypeID(newColor)
);
var target = new ActionDescriptor();
target.putReference(charIDToTypeID('null'), ref);
target.putObject(
charIDToTypeID('T '), // To
charIDToTypeID('Lyr '), // Layer
descColor
);
executeAction(charIDToTypeID('setd'), target, DialogModes.NO);
}
catch (e)
{
alert(e.message);
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment