কীভাবে ইলাস্ট্রেটর স্তরগুলি পৃথক চিত্র হিসাবে রফতানি করবেন?


15

আমার কাছে একটি ইলাস্ট্রেটর ফাইল রয়েছে যাতে নিদর্শনগুলি রয়েছে। আমি এই নতুন প্রোগ্রামটিতে স্কেচ নামক চেষ্টা করছি যা ব্যবহার করার জন্য আমি পৃথক চিত্র হিসাবে প্রতিটি প্যাটার্ন রফতানি করতে চাই। এমন কোনও ব্যাচ প্রসেসিং স্ক্রিপ্ট রয়েছে যা পিএনজি বা এসভিজি হিসাবে স্তরগুলি রফতানি করে? আমি প্রতিটি জ্যামিতিক নিদর্শন একটি বৃহত ফাইল হিসাবে নয়, পিএনজি হিসাবে উপলব্ধ করতে চাই।

কোন চিন্তা?

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 ফাইলটি অ্যাডোব ইলাস্ট্রেটর সিএস (এক্স) / প্রিসেটস / [আপনার ভাষা] / স্ক্রিপ্টগুলিতে রাখুন। ইলাস্ট্রেটর পুনরায় চালু করার পরে স্ক্রিপ্টটি File > Scriptsচিত্রকের মধ্যে দৃশ্যমান হওয়া উচিত ।


এফওয়াইআই, উপরে পোস্ট করা স্ক্রিপ্টটি ইলাস্ট্রেটার সিসিতে কাজ করে না, এটি আমাকে দেয়: ত্রুটি 8, সিনট্যাক্স ত্রুটি। লাইন 1:

1
স্ক্রিপ্টটি এখানে ইলাস্ট্রেটার সিসিতে একেবারে সূক্ষ্মভাবে কাজ করে।
স্কট

2
আমি লাইন 1 এ সিনট্যাক্স ত্রুটিও পাচ্ছিলাম। যখন আমি .jsx আবার খুলি তখন উপরের কোড থেকে মূল লাইন 1 এর উপরে অতিরিক্ত কোড ছিল। আমি উপরের সমস্ত কিছু মুছে ফেলেছি ইলেকট্রের .jsx ফাইলটি সংরক্ষণ করেছি। আমি ইলাস্ট্রেটর পুনরায় চালু করেছি এবং স্ক্রিপ্টটি এখন ভাল কাজ করে। আমি সিসি

এখানে হালনাগাদ করা সংস্করণ যা সংখ্যার কাউন্টারের পরিবর্তে ফাইলের নামে স্তরটির নাম ব্যবহার করে (সুতরাং "মাইডোক-লেআরনাম.পিএনজি" "মাইডোক-১.পিএনজি" পরিবর্তে) ... অন্য কারও যদি আমার মতো প্রয়োজন হয়। gist.github.com/34e54d199de123b8e3c50a305f23115e
ক্রিস ইমারসন

5

কর্মপ্রবাহের সরলতা এবং গতির জন্য, আমি সম্ভবত পৃথক নিদর্শনগুলির জন্য স্লাইস তৈরি করতে স্লাইস সরঞ্জামটি ব্যবহার করব, তারপরে ওয়েবের জন্য সংরক্ষণ করুন, "রফতানি:" ড্রপডাউনতে "সমস্ত স্লাইস" নির্বাচিত হয়েছে কিনা তা নিশ্চিত করে। যদি আমি স্ক্র্যাচ থেকে বিল্ডিং করছিলাম তবে আমি প্রতিটি প্যাটার্নটি তার নিজস্ব আর্টবোর্ডে রেখেছি (যা আপনি এখনও করতে পারেন) এবং "> আর্টবোর্ডগুলি ব্যবহার করুন" বিকল্প পরীক্ষা করে ফাইল> রফতানি ব্যবহার করতাম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.