Illustrator katmanlarını tek tek görüntüler olarak nasıl dışa aktarabilirim?


15

Desen içeren bir Illustrator dosyası var. Sketch'i denediğim bu yeni programda kullanmak üzere her bir deseni ayrı bir görüntü olarak dışa aktarmak istiyorum. Katmanları PNG veya SVG olarak dışa aktaran bir toplu işlem komut dosyası var mı? Her geometrik desenin büyük bir dosya olarak değil PNG olarak mevcut olmasını istiyorum.

Düşüncesi olan var mı?

png

Yanıtlar:


14

Desenler gerçekten tek tek katmanlardaysa, her katmanı ayrı bir png olarak dışa aktarmak için komut dosyası kullanabilirsiniz.

Carlos Canto , Illustrator için bir senaryo yazdı ve Adobe forumlarına gönderdi.

Link rot durumunda, Carlos'un senaryosu:

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

Bunu kopyalayıp bir metin dosyasına yapıştırın ve metin dosyasını .jsx sonekiyle kaydedin. Sonra .jsx dosyasını Adobe Illustrator CS (x) / Presets / [diliniz] / Scripts içine yerleştirin. Illustrator'ı yeniden başlattıktan sonra, komut dosyası File > ScriptsIllustrator içinden görünür olmalıdır .


FYI, yukarıda yayınlanan komut dosyası Illustrator CC'de çalışmıyor, bana veriyor: Hata 8, Sözdizimi hatası. Satır 1:

1
Burada Illustrator CC'de senaryo kesinlikle iyi çalışıyor.
Scott

2
Ayrıca 1. satırda sözdizimi hatası alıyordum. .Jsx'i yeniden açtığımda yukarıdaki koddan orijinal satırın 1 üzerinde ek kod vardı. #Target üzerindeki yukarıdaki her şeyi sildim Illustrator .jsx dosyasını kaydetti. Illustrator'ı yeniden başlattım ve senaryo şimdi iyi çalışıyor. Ayrıca CC kullanıyorum

Burada, sayısal bir sayaç yerine dosya adında katman adını kullanan güncellenmiş sürüm (yani "mydoc-1.png" yerine "mydoc-layername.png") ... başka birinin benim gibi ihtiyacı varsa. gist.github.com/34e54d199de123b8e3c50a305f23115e
Chris Emerson

5

Basitlik ve iş akışının hızı için, büyük olasılıkla tek tek desenler için dilim oluşturmak için dilim aracını, ardından "Dışa Aktar:" açılır menüsünde "Tüm Dilimler" in seçildiğinden emin olmak için Web için Kaydet'i kullanırdım. Sıfırdan inşa ediyor olsaydım, her bir deseni kendi çalışma yüzeyine koyardım (yine de yapabilirdiniz) ve "Çalışma Yüzeylerini Kullan" seçeneği işaretliyken Dosya> Dışa Aktar'ı kullanırdım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.