4

画像を別の解像度で作成するたびに、[Web 用に保存] をクリックして解像度を変更するのは面倒です。複数の解像度を 1 つとして、これを自動的に達成するスクリプトを作成する方法はありますか?

4

3 に答える 3

4

そのために私自身はこの機能を使用します

function saveDocumentAsPng(d, width, height) {
    var fileName = d.fullName.toString();
    if(fileName.lastIndexOf(".") >= 0) { fileName = fileName.substr(0, fileName.lastIndexOf("."));}
    fileName += "_wxh.png".replace("w", width).replace("h", height);

    var exportOptions = new ExportOptionsPNG24();
    exportOptions.horizontalScale = exportOptions.verticalScale = 100 * Math.max(width/d.width, height/d.height);
    var file = new File(fileName);

    app.activeDocument = d;
    d.exportFile(file, ExportType.PNG24, exportOptions);
}

結果の png には「_[幅]x[高さ]」という接尾辞が付いていることに注意してください。

Adobe の JavaScript リファレンスhttp://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/illustrator/scripting/illustrator_scripting_reference_javascript_cs5.pdf (59 ページ)のサンプルに基づいて関数を作成しました。 )。

于 2013-11-13T12:03:02.340 に答える
1

これは古い投稿ですが、共有したい Android プロジェクト用に別のバージョンを作成するきっかけになりました。144x144 ピクセルのドキュメントを作成し、これを実行するだけです:

var doc = app.activeDocument;

// This is the scale factor that you can see in "Percent" textbox of
// the "Save for Web..." dialog box while changing the size of the image
var scale = [100, 66.67, 50, 33.33]

// This is the image size for the PNGs files names
var size = [144, 96, 72, 48]

for(var i = 0; i<4; i++)
{
    var fileName = doc.fullName.toString();
    if (fileName.lastIndexOf(".") >= 0) {
        // Get the file name without the extension
        fileName = fileName.substr(0, fileName.lastIndexOf("."));
    }
    // Name each file with yours size to avoid overwrite
    fileName += "_wxh.png".replace("w", size[i]).replace("h", size[i]);

    var exportOptions = new ExportOptionsPNG24();
    exportOptions.horizontalScale = exportOptions.verticalScale = scale[i];
    exportOptions.artBoardClipping = true;

    var file = new File(fileName);
    doc.exportFile(file, ExportType.PNG24, exportOptions);
}

Window.alert ("Successfully exported!", "Success");

ありがとうございました!

于 2016-05-28T22:21:04.960 に答える