リンクをクリップボードにコピー
コピー完了
Adobe illustratorのスクリプトについてご教示ください。
現在、こちらのリンクを参考に
https://onishi-noboru.com/adobe-illustrator-how-to-export-artwork-by-layers
レイヤーごとにまとめて書き出すスクリプトを使用しているのですが
現在の機能に追加で、
一番上のレイヤーを必ず表示させて書き出しするようには可能でしょうか?
仕事で、ガイドレイヤーを表示しつつ、各レイヤーを書き出ししたく。。。
現在は、面倒ですが入稿データ作成後に、各レイヤーに
一番上のレイヤー(ガイドレイヤー)をフロントペーストして
書き出ししております。
不可能なら諦めるのですが、
スクリプトやコードについて詳しい方がおられましたら
お力添えいただけますと幸いです。
よろしくお願い致します
【使用中のコード】
var folder = Folder.selectDialog();
var document = app.activeDocument;
if(document && folder)
{
var options = new ExportOptionsPNG24();
options.antiAliasing = true;
options.transparency = true;
options.artBoardClipping = true;
var n = document.layers.length;
for(var i=0; i<n; ++i)
{
hideAllLayers();
var layer = document.layers[i];
layer.visible = true;
var file = new File(folder.fsName+"/"+layer.name+".png");
document.exportFile(file,ExportType.PNG24,options);
}
showAllLayers();
}
function hideAllLayers()
{
forEach(document.layers, function(layer) {
layer.visible = false;
});
}
function showAllLayers()
{
forEach(document.layers, function(layer) {
layer.visible = true;
});
}
function forEach(collection, fn)
{
var n = collection.length;
for(var i=0; i<n; ++i)
{
fn(collection[i]);
}
}
すごい失礼しました
document.layers[0]以下略 ですね…
リンクをクリップボードにコピー
コピー完了
追記【PCの構成】
OS: mac OS Mounterey
Mem : 64GB
CPU : 3.8 GHz 8コアIntel Core i7
です。よろしくお願いします。
リンクをクリップボードにコピー
コピー完了
もちろん可能なんですけど、Web上で公開されているスクリプトだとしても権利が発生する著作物にかわりありません。まるまる転載はよろしくありません。
一番上ということはlayers[0]ですから、それのvisibleプロパティをtrueにすると良いでしょう。
リンクをクリップボードにコピー
コピー完了
テンA様
早速のご回答ありがとうございます。
>Web上で公開されているスクリプトだとしても権利が発生する著作物にかわりありません。まるまる転載はよろしくありません。
そうですね。ご指摘いただきありがとうございます。
申し訳ございません。以後気をつけます。
当方、コードの仕組みについてあまりわかっておらず
layer[0].visible = true;
をどこかに追加すれば良いということでしょうか?
知識不足で大変恐縮でございますが
どこに追加すれば良いかなど、お教えいただけますと幸いです。。
よろしくお願い致します。
リンクをクリップボードにコピー
コピー完了
横からすみません
>Web上で公開されているスクリプトだとしても権利が発生する著作物にかわりありません。まるまる転載はよろしくありません。
このことについて、「もう転載しちゃったものは仕方ない」として話を進めることの是非が問われる問題だと思うのです。本来は公開元のほうで転載や二次的配布、改変などについての著作権範囲を記載しておくのがベストですが、たとえそれがなかった場合でも最初に著作者であるリンク先にお伺いをたてるのがお行儀というものでしょう。
それは今からでも全然間に合いますのでぜひご検討ください。
わからないなりによく見ると、書き出しを実行している行がわかるはずです。
>document.exportFile(file,ExportType.PNG24,options);
これのすぐ上に追記すればそれなりの結果になるかと。
構文としてはとてもぶさいくになりますが要件は果たせるはずです。
リンクをクリップボードにコピー
コピー完了
ajabon grinsmith様
ご返信いただきありがとうございます。
同様のスクリプトのコピーがWEB上に多数あり、一番わかりやすいサイト様をリンクとして
貼り付けてしまいました。軽率な行為であったと反省しております。
どの公開元も見つけた中では転載や二次的配布、改変など見当たらなかったので、
一番古い記事を公開している方に転載と改変の旨お伺いしようと思います。
マナーのご指摘、ありがとうございます。
早速、教えていただいた通りに
>document.exportFile(file,ExportType.PNG24,options);
これのすぐ上に追記
layer[0].visible = true;
を追加してみましたが、
「Error 21: undefinedはオブジェクトではありません」
とのエラーが出てしまい、スクリプトが起動できませんでした。
layer[0].visible = true;
の部分が間違っているのでしょうか??
どなたかお教えいただけると幸いです。。
よろしくお願い致します。
リンクをクリップボードにコピー
コピー完了
すみません凡ミスを見落としましたっ
layers[0].visible = true;
レイヤーズにしてみてください。エスつけてください。
リンクをクリップボードにコピー
コピー完了
ajabon grinsmith様
早速のご返信、ありがとうございます!
ご指摘の頂いた通り、layers[0].visible = true;
にしたところ、Error 21は解消されたようなのですが、
今度は「Error 2: layers[0]は未定義です」とのエラーが出てきてしまいました。。
layers[0]を定義するための構文が必要になるのですかね。。><
リンクをクリップボードにコピー
コピー完了
リンクをクリップボードにコピー
コピー完了
すごい失礼しました
document.layers[0]以下略 ですね…
リンクをクリップボードにコピー
コピー完了
ajabon grinsmith様
お返事ありがとうございます。
すごい!!やりたかったことができました!!
これで、今後かなりの時短になります。
何度もご丁寧に教えていただきありがとうございました。
著作権の件に関しても、教えていただき恐縮です。
誠に感謝いたします!!
新しいアドビコミュニティで、さらに多くのインスピレーション、イベント、リソースを見つけましょう
今すぐ検索