Illustratorレイヤーを個々の画像としてエクスポートする方法は?


15

パターンを含むIllustratorファイルがあります。Sketchと呼ばれるこの新しいプログラムで使用する個々の画像として各パターンをエクスポートしたいと思います。レイヤーをPNGまたはSVGとしてエクスポートするバッチ処理スクリプトはありますか?各幾何学パターンを1つの大きなファイルとしてではなく、PNGとして使用できるようにしたいと思います。

何かご意見は?

png

回答:


14

パターンが実際に個々のレイヤー上にある場合、スクリプトを使用して各レイヤーを個別のpngとしてエクスポートできる場合があります。

Carlos Cantoは、Illustrator用スクリプトを作成し、Adobeフォーラムに投稿しました。

リンクが腐敗している場合、Carlosのスクリプトを次に示します。

#target Illustrator

//  script.name = exportLayersAsCSS_PNGs.jsx;
//  script.description = mimics the Save for Web, export images as CSS Layers (images only);
//  script.requirements = an open document; tested with CS5 on Windows. 
//  script.parent = carlos canto // 05/24/13; All rights reseved
//  script.elegant = false;


/**
* export layers as PNG
* @author Niels Bosma
*/
// Adapted to export images as CSS Layers by CarlosCanto


if (app.documents.length>0) {
    main();
}
else alert('Cancelled by user');


function main() {
    var document = app.activeDocument;
    var afile = document.fullName;
    var filename = afile.name.split('.')[0];


    var folder = afile.parent.selectDlg("Export as CSS Layers (images only)...");


    if(folder != null)
    { 
        var activeABidx = document.artboards.getActiveArtboardIndex();
        var activeAB = document.artboards[activeABidx]; // get active AB        
        var abBounds = activeAB.artboardRect;// left, top, right, bottom


        showAllLayers();
        var docBounds = document.visibleBounds;
        activeAB.artboardRect = docBounds;


        var options = new ExportOptionsPNG24();
        options.antiAliasing = true;
        options.transparency = true;
        options.artBoardClipping = true;

        var n = document.layers.length;
        hideAllLayers ();
        for(var i=n-1, k=0; i>=0; i--, k++)
        {
            //hideAllLayers();
            var layer = document.layers[i];
            layer.visible = true;


            var file = new File(folder.fsName + '/' +filename+ '-' + k +".png");

            document.exportFile(file,ExportType.PNG24,options);
            layer.visible = false;
        }

        showAllLayers();
        activeAB.artboardRect = abBounds;
    }


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

これをコピーしてテキストファイルに貼り付け、.jsxサフィックスを付けてテキストファイルを保存します。次に、.jsxファイルをAdobe Illustrator CS(x)/ Presets / [your language] / Scriptsに配置します。Illustratorを再起動すると、Illustrator File > Scripts内でスクリプトが表示されるはずです。


参考までに、上記のスクリプトはIllustrator CCでは動作しません。エラー8、構文エラーが表示されます。行1:

1
このスクリプトは、ここのIllustrator CCではまったく問題なく機能します。
スコット14

2
また、1行目で構文エラーが発生していました。Illustratorが.jsxファイルを保存した#targetの上のすべてを削除しました。Illustratorを再起動すると、スクリプトは正常に動作します。私はまた、CC使用しています

数値カウンターの代わりにファイル名にレイヤー名を使用する更新バージョンです(「mydoc-1.png」ではなく「mydoc-layername.png」)...他の誰かが私と同じように必要な場合。 gist.github.com/34e54d199de123b8e3c50a305f23115e
クリスエマーソン

5

ワークフローをシンプルかつ高速にするために、おそらくスライスツールを使用して個々のパターンのスライスを作成し、[Web用に保存]で[エクスポート:]ドロップダウンで[すべてのスライス]が選択されていることを確認します。ゼロから構築する場合は、各パターンを独自のアートボードに配置し(これも実行できます)、[アートボードを使用]オプションをオンにして[ファイル]> [エクスポート]を使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.