Illustrator परतों को अलग-अलग छवियों के रूप में कैसे निर्यात करें?


15

मेरे पास एक इलस्ट्रेटर फ़ाइल है जिसमें पैटर्न हैं। मैं इस नए कार्यक्रम में उपयोग करने के लिए एक व्यक्तिगत छवि के रूप में प्रत्येक पैटर्न को निर्यात करना चाहूंगा जिसे मैं स्केच कहा जाता हूं। क्या एक बैच प्रोसेसिंग स्क्रिप्ट है जो PNG या SVG के रूप में परतों का निर्यात करती है? मैं प्रत्येक ज्यामितीय पैटर्न को PNG के रूप में उपलब्ध कराना चाहता हूं, न कि एक बड़ी फ़ाइल के रूप में।

कोई विचार?

png

जवाबों:


14

यदि पैटर्न वास्तव में व्यक्तिगत परतों पर हैं, तो आप प्रत्येक परत को एक व्यक्तिगत png के रूप में निर्यात करने के लिए स्क्रिप्टिंग का उपयोग करने में सक्षम हो सकते हैं।

कार्लोस कैंटो ने इलस्ट्रेटर के लिए एक स्क्रिप्ट लिखी और इसे एडोब फोरम में पोस्ट किया।

लिंक सड़ने के मामले में, यहां कार्लोस की पटकथा:

#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) / प्रीसेट / [आपकी भाषा] / लिपियों में रखें। इलस्ट्रेटर को रिलॉन्च करने के बाद, स्क्रिप्ट File > Scriptsइलस्ट्रेटर के माध्यम से दिखाई देनी चाहिए ।


FYI करें, ऊपर पोस्ट की गई स्क्रिप्ट इलस्ट्रेटर CC में काम नहीं करती है, यह मुझे देती है: त्रुटि 8, सिंटैक्स त्रुटि। लाइन 1:

1
स्क्रिप्ट इलस्ट्रेटर CC में बिल्कुल ठीक काम करती है।
स्कॉट

2
मुझे लाइन 1 पर सिंटैक्स त्रुटि भी मिल रही थी। जब मैंने .jsx को फिर से खोला तो ऊपर कोड से मूल पंक्ति 1 के ऊपर अतिरिक्त कोड था। मैंने #target Illustrator के ऊपर सब कुछ हटा दिया है .jsx फ़ाइल को सहेजा है। मैंने इलस्ट्रेटर को रीलॉन्च किया और स्क्रिप्ट अब ठीक काम करती है। मैं CC

यहां अपडेट किया गया संस्करण है जो एक संख्यात्मक काउंटर के बजाय फ़ाइल नाम में लेयर नाम का उपयोग करता है (इसलिए "mydoc-1.png" के बजाय "mydoc-layername.png" ...) अगर किसी और को मेरी जैसी ज़रूरत है। gist.github.com/34e54d199de123b8e3c50a305f23115e
क्रिस एमर्सन

5

वर्कफ़्लो की सादगी और गति के लिए, मैं शायद व्यक्तिगत पैटर्न के लिए स्लाइस बनाने के लिए स्लाइस टूल का उपयोग करूंगा, फिर वेब के लिए सहेजें, यह सुनिश्चित करते हुए कि "सभी स्लाइस" को "निर्यात:" ड्रॉपडाउन में चुना गया था। यदि मैं स्क्रैच से निर्माण कर रहा था, तो मैं प्रत्येक पैटर्न को अपने स्वयं के आर्टबोर्ड (जो आप अभी भी कर सकता था) पर रख दिया था और फ़ाइल> एक्सपोर्ट के साथ "आर्ट आर्टबोर्ड्स" विकल्प को चेक किया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.