0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

メモ:フォトショを使った写真の二色刷り変換

Posted at

フォトショップのスクリプト機能を使って、あるファイル内にあるすべての写真をCMYK版に変換→シアン、マゼンダ版のみグレースケールで出力 という操作を自動化します(もちろん、スクリプトを書き換えればイエローやブラックの抜き出しもできます)。

使いどころとしては、リソグラフで写真を印刷したいときや、予算の都合上フルカラーで印刷できないときに2色のインクを使って疑似的に色味を再現したいときなどにおすすめです。私はレトロ印刷さんでリソグラフを使ったZINEを作るときに使用しました。印刷時に便利なため、グレースケールで出力されるようにしています。

例:
bunkatu.png

スクリプト:

.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カラー」に変換するステップが必要かもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?