質問

Photoshopで、いくつかのレイヤーを変更し、PNG画像としてエクスポートするよりもスクリプトを作成しようとしています。次のコードを別の場所からコピーしました。

function SavePNG(saveFile){
    var pngOpts = new ExportOptionsSaveForWeb; 
    pngOpts.format = SaveDocumentType.PNG
    pngOpts.PNG8 = false; 
    pngOpts.transparency = true; 
    pngOpts.interlaced = true; 
    pngOpts.quality = 100;
    activeDocument.exportDocument(saveFile,ExportType.SAVEFORWEB,pngOpts);
}

関数は、PhotoshopのアクティブなドキュメントをSaveFileパラメーターで指定されたファイルにエクスポートします。

「C: Images result.png」などの単純なパスでは正常に動作していますが、「〜/desktop/」などの異なるパスで試行する場合、いくつかの特殊文字を持つパスでファイルがエクスポートされておらず、「宛先フォルダーはそうではありません。存在する「エラーメッセージが表示されます。

どうすれば解決できますか?

役に立ちましたか?

解決

まあ、なぜこれが起こるのかわかりませんが、次の変更を試すことができます。

function SavePNG(saveFile){
    var tmpFile = "./tmp.png";
    tmpFile = new File(tmpFile);
    var pngOpts = new ExportOptionsSaveForWeb; 
    pngOpts.format = SaveDocumentType.PNG
    pngOpts.PNG8 = false; 
    pngOpts.transparency = true; 
    pngOpts.interlaced = true; 
    pngOpts.quality = 100;
    activeDocument.exportDocument(tmpFile,ExportType.SAVEFORWEB,pngOpts); 
    tmpFile.rename (saveFile);
    tmpFile.changePath(saveFile);
}

ファイルを一時ファイルにエクスポートし、名前を変更して要求されたパスに移動します。パスの問題を解決するはずです。

他のヒント

ExportDocumentは、フォルダーパスではなく、完全なファイル名を期待しています。

これは機能します:

activeDocument.exportDocument(new File("~/foo/foo.png"), ExportType.SAVEFORWEB, pngOpts);

これは機能せず、「宛先フォルダーが存在しない」エラーメッセージを与えます。

activeDocument.exportDocument(new File("~/foo/"), ExportType.SAVEFORWEB, pngOpts);

このエラーがある人のために 使用していない photoshop-script.

エラーは宛先フォルダーにバウンドされていない可能性がありますが、エクスポートステップに使用されたフォルダーが削除されるために発生します。だからどちらも

  • 録音中に使用されたフォルダーを再作成する、または
  • エクスポートステップを再作成します
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top