Skip to main content
Known Participant
Sep 12, 2023 8:30 AM UTC
Answered

PhotoShopの画像書き出しについて。カンバスサイズを保持したまま書き出しをしたい。

PhotoShopの画像書き出しについてです。

添付画像のようにレイヤーが配置されている状態で、カンバスサイズを保持した状態で一括書き出しする方法はありませんか?拡張子は.pngで書き出したいです。

 

書き出したいレイヤーは各グループのトップ(A・B・C・D・E・F)です。

通常であれば、Aのグループのみ表示させ、それ以外のグループを非表示>名前を付けて保存>拡張子を選んで>保存となりますが(現在はこのやり方でやってます)、これだと1つのデータを保存するのに非常に時間がかかります。

しかもこの往復作業を計6回やらなくてはなりません。6個ならまだ何とかなりますが、これが何十個もあると途方に暮れます...。

 

上記手順で書き出したデータがこちら(グレーの部分は透明と仮定してください)↓

↑結論これを6個素早く作りたい

 

逆に、ファイル>書き出し>レイヤーからファイル だと、以下のように各レイヤーの解像度(余白がない状態)かつグループ化が解除された状態で書き出されてしまうので上記で説明した出来上がって欲しいものとは大きく差異があります。

 

A~F決められた場所に配置されたデータをそのままに描きだす方法があれば教えてください!

駄文で恐れ入りますがよろしくお願いいたします。

This topic is closed to new replies. Start a new post to keep the conversation going.
ajabon grinsmith
ajabon grinsmithCorrect answer
Community Expert
Sep 13, 2023 7:02 AM UTC

ふだん報酬ありきでスクリプト書いてますが、

今回ちょっとなのでこの場で書いてみました。

グループを内包しないグループを結合する、という内容です。

追加要件対応やメンテナンスについては期待なさらないでください。

mergeMinGroup(app.activeDocument);

function mergeMinGroup(gr){
    var flag = true;
    for(var i = gr.layers.length - 1; i >= 0; i--){
        var ly = gr.layers[i];
        if(ly.typename == "LayerSet"){
            flag = false;
            mergeMinGroup(ly);
        }
    }
    if(flag) gr.merge();
}

 

もと

 

あと

 

というかんじです。ここまでこぎつけたら、あとは ファイルメニュー > 書き出し > レイヤーからファイル でいけるのでは。

12 replies

Inspiring
Jul 5, 2024 5:34 AM UTC

Windows環境であればPhotoshopの純正機能で対応できます。

 

【準備1】

環境設定 > 書き出し > オプション

⇒従来の「書き出し形式」を使用にチェックを入れる

※Mac環境には何故かこの項目が存在しません

 

【準備2】

フォルダ「A」~「F」にレイヤーマスクを作成。

 

【ステップ1】

フォルダ「A」~「F」を選択

※その際に一番最上層にある「グループ」は選択しないこと

 

【ステップ2】

選択済みのいずれかのレイヤーを右クリック > PNGとしてクイック書き出し > 保存

 

以上で、選択された全てのフォルダ(及びレイヤー)がカンバスサイズを保持して書き出されます。

 

蛇足ですが…

準備2に関しては手作業になります。ただ、キーボードショートカットを駆使していただければそこまで手間ではないかと思います。念の為その方法についても記載しておきます。

■レイヤーマスク作成の時短方法 キーボードショートカット編

【準備1】

キーボードショートカットを設定(例: Ctrl + ^)

⇒アプリケーションメニュー > レイヤー > レイヤーマスク > すべての領域を表示

【準備2】

マスクを作成したいレイヤーのみを表示

 

【ステップ】

1.  Alt + [ or Alt + ]

2. レイヤーマスクのショートカット(例: Ctrl + ^)

3. 1と2を繰り返し

Translate
ajabon grinsmith
Community Expert
Community Expert
Jul 5, 2024 8:16 AM UTC

Photoshop 25.9.1  Mac です

「従来の書き出し形式」チェック、Macにもありました!

Translate
Inspiring
Jul 10, 2024 5:34 AM UTC

Macにも項目があれば同じ方法で対応できそうですね。

私が確認した環境はM2だったのでシリーズによって違うのかもしれません。

情報ありがとうございます!

Translate
Known Participant
Sep 18, 2023 4:47 PM UTC

終わった話だけれどつぶやいておきます

「PNG書き出し」にショートカットを設定して

スクリプトを実行してショートカットをするともう少し楽になる

 

・・・気がする

Translate
Inspiring
Sep 13, 2023 3:35 AM UTC

元のデータから6個複製を作成する。(ちょっと面倒)
それぞれ一つのレイヤー表示だけにする。(数多いと面倒)
インデザインとかに一気に配置して一気に書き出す。(わりと簡単)
書き出しが個別じゃない分、少し楽な気がします。

Translate
Windows 11 Pro 25H2 イラレ2024,2025,2026 フォトショップ 2024,2025,2026
ajabon grinsmith
Community Expert
Community Expert
Sep 13, 2023 12:51 AM UTC

いったん要件を整理していいでしょうか。

 

・背景レイヤーは本来存在しない(非表示などでもなく本当に存在しない)

・グループごとの書き出しをしたい

・グループが入れ子になっている場合、最奥のグループだけを対象としたい

・親グループ内に子グループ以外の単一レイヤーが存在する場合は無視する(例にはないが可能性として)

 

…で合っているでしょうか?

自分が知らないだけなのかもしれませんが、機能として存在しない場合、言い換えれば「ユーザーにとって都合の良いグループを書き出す」にあたります。

つまりはスクリプトで解決するしかない案件かなあと。

Translate
AncNatAuthor
Known Participant
Sep 13, 2023 4:27 AM UTC

駄文の中大変恐れ入ります。。

いただいている要件定義で合っています。

自分でもいろいろと調べてみているとやはりスクリプトで解決が早いのかもしれないと感じました。とは言ってもコードは1mmも書けないので搭載されている機能でなんとかしようとしています。。

 

直近試した中で一番再現性良かったものはレイヤーカンプ機能でした。

しかしながらこちらも一度”不必要なレイヤーは非表示の上”、レイヤーカンプに追加を繰り返す必要がありました。書き出しに関してはカンプに追加したもの全選択>書き出し>レイヤーカンプからファイルで一括書き出しができたため当初記載の方法より若干効率は上がり、カンバスサイズを維持したまま書き出すことができました。

 

ですが求めているのは「不必要なレイヤーは非表示の上」という作業を除いて行いたくそれに付随する機能やスクリプトがあればご教示いただきたく....。

言ってしまえば、グループの親を右クリックしてこのレイヤー+背景(カンバス全体)のみを書き出す。みたいな機能が無いものなのかなと😰.....。

Translate
ajabon grinsmith
Community Expert
ajabon grinsmithCommunity ExpertCorrect answer
Community Expert
Sep 13, 2023 7:02 AM UTC

ふだん報酬ありきでスクリプト書いてますが、

今回ちょっとなのでこの場で書いてみました。

グループを内包しないグループを結合する、という内容です。

追加要件対応やメンテナンスについては期待なさらないでください。

mergeMinGroup(app.activeDocument);

function mergeMinGroup(gr){
    var flag = true;
    for(var i = gr.layers.length - 1; i >= 0; i--){
        var ly = gr.layers[i];
        if(ly.typename == "LayerSet"){
            flag = false;
            mergeMinGroup(ly);
        }
    }
    if(flag) gr.merge();
}

 

もと

 

あと

 

というかんじです。ここまでこぎつけたら、あとは ファイルメニュー > 書き出し > レイヤーからファイル でいけるのでは。

Translate