見出し画像

InDesign+Photoshopで画像のインキ総量を簡単に300%以下にする

なぜインキ総量を300%以下にするのか

商業用のカラー印刷では、インキ総量(インキの総使用量)を300%までに抑えることが推奨される。CMYKの全ての数値を加算して300を超えてはならない、ということだ。

主な理由は、2つある。

  1. 乾きが悪くなる
    インキ総量が多いと、印刷後にインクが乾きにくくなる。多少なら乾かす時間を長くするなどで対応できるそうだが、コストアップにつながってしまうので、印刷所としてはできれば避けたい。もし乾く前に次の印刷工程に入ってしまうと、色が滲んだり、紙が汚れたりする可能性がある。

  2. 色の再現性が悪くなる
    インキ総量が増えると、色の再現性が悪くなり、意図したような色にならない現象が起きる。これは「トラッピング不良」と呼ばれる現象で、インキの上にインキを重ねすぎると、後から刷ったインキがうまく乗らなくなってくるためだ。

また、インキ総量が300%を超えるあたりから、「裏付き(裏うつり)」が発生しやすくなるとも言われる。これらの理由から、通常、インキ総量を300%から350%以下に抑えるように印刷所から依頼される。具体的な数値は印刷会社によるが、300%以下なら大抵の場合、大丈夫のようだ。

JPEGやPSDなどラスター画像のほか、ベクター画像やテキストもインキ総量制限の対象となる。ただ、問題となるのはラスター画像が多い。フリー素材サイトからダウンロードした写真をペタペタと貼っていたら、気づかないうちにこの問題が生じてしまう。ここでは、なるべく手間をかけずに、ラスター画像のインキ総量を300%に抑える手順を解説する。

なお、本稿の目的は、「InDesignからPhotoshopを呼び出し、InDesignに配置されたラスター画像のモードをCMYK→RGB→CMYKと2回変換し、それぞれ上書き保存する」という操作をInDesignのスクリプトで省力化することだ。その前後に、その操作に至る手順と、その後の手順の解説も付けるが、インキ総量の調整についての従来の手順を理解している人は、前後を読み飛ばしていただいても問題ないだろう。


InDesignでインキ総量の問題を可視化する

まず、InDesignに貼り込まれた画像のうち、どの画像がインキ総量に問題があるかがわかるよう、画像の中で問題のある部分に色を付けてみよう。

InDesignで[分版プレビュー]パネルが表示されていなければ、[ウィンドウ]メニュー→[出力]→[分版プレビュー]を選択。[表示]のリストをクリックして[インキ限定]を選択する
[表示]で[インキ限定]と[300%]を選択。すると、中央の画像がグレースケールで表示され、インキ総量が300%を超える部分が赤くなる。この画像のインキ総量には問題があることがわかったので、Photoshopに以下の手順を実行する

Photoshopでインキ総量を確認する

次に、どこがどのくらい問題があるのかを参考までに調べてみよう。Photoshopでマウスポインターを乗せた箇所のインキ総量を表示してみる。なお、この項の手順は、情報を知るためだけのものなので、スキップしてもよい。

Photoshopで画像を開いておく。[情報]パネルの[≡]アイコンをクリックして、[パネルオプション]を選択する
[情報パネルオプション]ダイアログが表示されるので、[第2色情報]の[モード]をクリックして、[インキの総使用量]を選択する
画像にマウスポインターを合わせると、その箇所のインキ総量が[情報]パネルに表示される。ここでは、◯部分にマウスポインターを合わせると、350%と表示された。これを300%以下にする必要がある

Photoshopのカラー設定を変更する

次に、Photoshopのカラー設定を変更し、保存時にインキ総量を調節できるプロファイルを利用できるようにする。なお、この手順は省略できない。

[編集]メニュー→[カラー設定]を選択すると、[カラー設定]ダイアログが表示される。[CMYK]のリストをクリック
[CMYK]で[カスタムCMYK..]を選択すると、[カスタムCMYK]ダイアログが表示される。[保存名]が「SWOP(コート紙), 20%, GCR, 中」となっていることと、[インキの総使用量の制限]が300%になっていることを確認して[OK]をクリックし、ダイアログを閉じる。なお、インキ総量を320%まで、あるいは350%までとしたいときは、[インキの総使用量の制限]の数字を書き換える

InDesignにスクリプトを読み込む

いよいよ本稿の主要部分だ。スクリプトは以下のとおり。適当なファイル名でよいが、拡張子は「.js」にする必要がある。スクリプトファイルは、あとで移動するので、作成時の保存場所は適当でよい。

#target indesign

function main() {
    if (app.documents.length == 0) {
        alert("ドキュメントを開いてください。");
        return;
    }

    var doc = app.activeDocument;
    var selectedItem = doc.selection[0];

    if (!selectedItem || !(selectedItem instanceof Rectangle) || !selectedItem.images.length) {
        alert("画像フレームを選択してください。");
        return;
    }

    var myImage = selectedItem.images[0];
    var myImagePath = myImage.itemLink.filePath;

    if (!myImagePath) {
        alert("選択された画像のファイルパスを取得できませんでした。");
        return;
    }

    // Photoshopでスクリプトを実行
    var bt = new BridgeTalk();
    bt.target = "photoshop";
    
    bt.body = "app.displayDialogs = DialogModes.NO;\n" +
              "try {\n" +
              "    var docRef = app.open(File('" + myImagePath.replace(/\\/g, '\\\\') + "'));\n" +
              "    function convertColorSpace() {\n" +
              "        // RGBモードに変換\n" +
              "        if (docRef.mode != DocumentMode.RGB) {\n" +
              "            docRef.changeMode(ChangeMode.RGB);\n" +
              "        }\n" +
              "        \n" +
              "        // CMYKモードに変換\n" +
              "        docRef.changeMode(ChangeMode.CMYK);\n" +
              "    }\n" +
              "    convertColorSpace();\n" +
              "    docRef.save();\n" +
              "    docRef.close(SaveOptions.SAVECHANGES);\n" +
              "} catch(e) {\n" +
              "    alert('エラーが発生しました: ' + e);\n" +
              "} finally {\n" +
              "    app.displayDialogs = DialogModes.ALL;\n" +
              "}\n" +
              "alert('画像の色空間変換が完了しました。');"

    bt.onResult = function(resultMsg) {
        alert("Photoshopでの処理が完了しました。InDesignの画像を更新してください。");
    };

    bt.onError = function(errorMsg) {
        alert("エラーが発生しました: " + errorMsg.body);
    };

    bt.send();
}

main();

InDesignで[スクリプト]パネルを開いて、上のスクリプトを追加する。

[スクリプト]パネルが表示されていなければ、[ウィンドウ]メニュー→[ユーティリティ]→[スクリプト]を選択すると、この画像のように右端に[スクリプト]パネルが表示される。あとは、[ユーザー]を右クリック(Ctrl+クリック)して[Finderで表示]を選択する
すると、自分で作成したスクリプトを追加する場所がFinderで表示される。ここに先ほど保存したスクリプトファイルをコピーする
コピーしたところ。コピーできたら、Finderのウィンドウは閉じてもよい
InDesignに戻ると、[ユーザー]の下に先ほどコピーしたスクリプトのファイル名が表示される。

このあと、操作したい画像を選択した状態で、スクリプトをダブルクリックするか、あるいは右クリック→[スクリプトを実行]を選択する。うまく実行できたら、以下のダイアログが表示される。

スクリプトが実行できたら、Photoshopからダイアログが表示される

InDesignで画像を再読み込みする

ここから先は、InDesignを日常的に使っている人には常識だが、一応最後まで解説しておく。

Photoshopで画像を変更したことになるので、InDesignにすでに貼り付けてある画像に反映するには、InDesign上で画像を再読み込みする必要がある。

更新した画像を選択して、[リンク]パネルを開き、[リンクを更新]アイコンをクリックする。なお、複数の画像を一度に更新したいときは、Optionキーを押しながら[リンクを更新]アイコンをクリックするとよい
[分版プレビュー]で再度調べたところ、インキ総量の問題を表す赤い部分は消失していた。これでOKだ

スクリプトを何で作ったか

スクリプトの作成に利用した生成AIは「Claude 3.5 Sonnet」。先にChatGPTのGPT-4oを使ったが、途中でエラー修正が堂々巡りになってしまい、諦めた。以前は、プログラミング補助にはGPT-4がベストだと思えた時期もあったが、もうClaudeの方が使えると言ってもいいかもしれない。


この記事が気に入ったらサポートをしてみませんか?