終了

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

New Here ,
Sep 12, 2023 Sep 12, 2023

リンクをクリップボードにコピー

コピー完了

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

1.jpg

2.png

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

 

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

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

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

 

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

3.jpg

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

 

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

3.jpg

 

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

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

キーワード
Windows

表示

1.1K

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 1 件の正解

Community Expert , Sep 13, 2023 Sep 13, 2023

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

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

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

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

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();
}

 

もと

スクリーンショット 2023-09-13 15.59.09.png

 

あと

スクリーンショット 2023-09-13 15.59.23.png

 

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

投票

翻訳

翻訳
Community Expert ,
Sep 12, 2023 Sep 12, 2023

リンクをクリップボードにコピー

コピー完了

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

 

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

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

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

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

 

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

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

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

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
New Here ,
Sep 12, 2023 Sep 12, 2023

リンクをクリップボードにコピー

コピー完了

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

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

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

 

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

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

 

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

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

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Sep 13, 2023 Sep 13, 2023

リンクをクリップボードにコピー

コピー完了

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

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

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

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

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();
}

 

もと

スクリーンショット 2023-09-13 15.59.09.png

 

あと

スクリーンショット 2023-09-13 15.59.23.png

 

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

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
New Here ,
Sep 13, 2023 Sep 13, 2023

リンクをクリップボードにコピー

コピー完了

わざわざコードまで書いてくださりありがとうございます!

ご教示いただいたコードを使用してスクリプト実行したら画像のようにすることができました。

適宜レイヤーの中身を変更する必要がある場合は事前にバックアップ(コピペ)やスマートオブジェクトにしておく必要はありますが、明らかに時短にはなりました。

今後活用させていただきます。ありがとうございました!

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
積極的な参加者 ,
Sep 12, 2023 Sep 12, 2023

リンクをクリップボードにコピー

コピー完了

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

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Sep 18, 2023 Sep 18, 2023

リンクをクリップボードにコピー

コピー完了

最新

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

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

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

 

・・・気がする

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines