フォトショップのスクリプト機能を使って、あるファイル内にあるすべての写真をCMYK版に変換→シアン、マゼンダ版のみグレースケールで出力 という操作を自動化します(もちろん、スクリプトを書き換えればイエローやブラックの抜き出しもできます)。
使いどころとしては、リソグラフで写真を印刷したいときや、予算の都合上フルカラーで印刷できないときに2色のインクを使って疑似的に色味を再現したいときなどにおすすめです。私はレトロ印刷さんでリソグラフを使ったZINEを作るときに使用しました。印刷時に便利なため、グレースケールで出力されるようにしています。
スクリプト:
.jsx
#target photoshop
function saveChannelAsGrayscalePNG(doc, channelIndex, suffix, saveFolder) {
try {
var dup = doc.duplicate(suffix + "_temp");
// チャンネルインデックスで指定(0: Cyan, 1: Magenta, 2: Yellow, 3: Black)
dup.activeChannels = [dup.channels[channelIndex]];
dup.changeMode(ChangeMode.GRAYSCALE);
var docName = doc.name.replace(/\.[^\.]+$/, '');
var saveName = docName + "_" + suffix + ".png";
var saveFile = new File(saveFolder + "/" + saveName);
var pngOpts = new PNGSaveOptions();
dup.saveAs(saveFile, pngOpts, true, Extension.LOWERCASE);
dup.close(SaveOptions.DONOTSAVECHANGES);
} catch (e) {
alert("保存エラー(" + suffix + "):" + doc.name + "\n" + e.message);
}
}
function processFile(file, saveFolder) {
if (!file.name.match(/\.(jpg|jpeg|png|psd|tif|tiff)$/i)) return;
try {
var doc = app.open(file);
if (doc.mode !== DocumentMode.CMYK) {
doc.changeMode(ChangeMode.CMYK);
}
saveChannelAsGrayscalePNG(doc, 0, "シアン", saveFolder); // Cyan: channels[0]
saveChannelAsGrayscalePNG(doc, 1, "マゼンタ", saveFolder); // Magenta: channels[1]
doc.close(SaveOptions.DONOTSAVECHANGES);
} catch (e) {
alert("ファイル処理エラー:" + file.name + "\n" + e.message);
}
}
// ▼ メイン処理
var inputFolder = Folder.selectDialog("処理したい画像フォルダを選んでください");
if (inputFolder) {
var saveFolder = Folder.selectDialog("保存先フォルダを選んでください");
if (saveFolder) {
var files = inputFolder.getFiles(function(f) {
return f instanceof File && f.name.match(/\.(jpg|jpeg|png|psd|tif|tiff)$/i);
});
for (var i = 0; i < files.length; i++) {
processFile(files[i], saveFolder);
}
alert("すべてのファイルに処理を完了しました!");
} else {
alert("保存先が選ばれていません。");
}
} else {
alert("入力フォルダが選ばれていません。");
}
上のスクリプトを「.jsx」で保存し、フォトショのメニューから「ファイル→スクリプト→参照」を選択するとスクリプトを実行できます。あとはフォトショの指示通りに進めるだけです。
ひょっとしたら最初に「イメージ」→「モード」から「CMYKカラー」に変換するステップが必要かもしれません。