4

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

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

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

「C:\images\result.png」のような単純なパスでは問題なく動作しますが、「~/Desktop/」などの別のパスや特殊文字を含むパスを試してみると、ファイルがエクスポートされず、「宛先フォルダーがエクスポートされません」存在します」というエラーメッセージが表示されます。

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

4

3 に答える 3

8

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

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

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

于 2011-01-03T17:50:11.967 に答える
1

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

これは機能します:

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

これは機能せず、「宛先フォルダーが存在しません」というエラー メッセージが表示されます。

activeDocument.exportDocument(new File("~/foo/"), ExportType.SAVEFORWEB, pngOpts);
于 2012-11-21T00:39:28.407 に答える
0

このエラーがあり、使用していない photoshop-script人向け。

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

  • 記録中に使用されたフォルダを再作成するか、または
  • エクスポート手順を再作成します
于 2014-10-22T07:44:07.270 に答える