इलस्ट्रेटर जेएस मैनुअल के आधार पर मैं नीचे दिए गए कोड के साथ आया हूं। यह कोड वही करता है जो आप चाहते हैं:
- दो रंग स्टॉप के साथ एक ढाल बनाता है: काले और सफेद
- इसे पांच बार दोहराते हैं
- इसे सक्रिय (चयनित) तत्व के लिए एक स्ट्रोक के रूप में लागू करता है
लाइन के नीचे एक अधिक सामान्य संस्करण पाया जा सकता है।
(1) सबसे पहले हम रंगों की संख्या निर्धारित करते हैं और वांछित समय के अनुसार ढाल की आवश्यकता होती है:
//Change these
var numberOfColors = 2; //Change this to the desired number of colors in the gradient
var iteration = 5; //Change this to the desired times you want to repeat the gradient
(२) फिर हम बाद में उपयोग किए जाने वाले कुछ चर निर्धारित करते हैं। GradientInterval
प्रत्येक बिंदु को सेट करने के लिए आवश्यक प्रतिशत स्थिति की गणना करता है। totalNumberofStops
बहुत आत्म-व्याख्यात्मक है। colors
सरणी बाद में इस्तेमाल किया जाएगा।
//Don't change these
var i,j;
var gradientInterval = 100 / numberOfColors / iteration;
var totalNumberOfStops = numberOfColors * iteration;
var colors = [];
(३) तब हम अपने रंगों को परिभाषित कर सकते हैं। आपको numberOfColors
शुरुआत में सेट के रूप में बिल्कुल कई रंगों की आवश्यकता होती है । लापता रंग काले रंग के लिए डिफ़ॉल्ट होंगे।
//Don't forget to push the colors to the colors array!
var color1 = new RGBColor();
color1.red = 0;
color1.green = 0;
color1.blue = 0;
colors.push(color1);
var color2 = new RGBColor();
color2.red = 255;
color2.green = 255;
color2.blue = 255;
colors.push(color2);
(४) हमारी ढाल बनाने और उसे नाम देने का समय। हम अब टाइप भी सेट कर सकते हैं।
//Let's initiate the gradient & name it
var newGradient = app.activeDocument.gradients.add();
newGradient.name = "new_gradient";
//Choose the gradient type here
//newGradient.type = GradientType.RADIAL; //Uncomment the one you need
newGradient.type = GradientType.LINEAR; //Uncomment the one you need
(५) अब अच्छे हिस्से के लिए। पहले हम लूप करेंगे totalNumberOfStops
ताकि हम प्रत्येक स्टॉप बना सकें और इसे ग्रेडिएंट में जोड़ सकें। हम एक नया स्टॉप बनाते हैं और इसे पिछले एक से आगे सेट करते हैं। अब हमें अपने रंग सरणी से सही रंग प्राप्त करने की आवश्यकता है। जब रंगों की संख्या से विभाजित लूप इंडेक्स का मापांक 0 होता है, तो हम जानते हैं कि हमारे पास हर रंग है और हमें फिर से शुरू करने की आवश्यकता है, इसलिए हम अपने रंग सूचकांक को रीसेट करते हैं।
उदाहरण कहो मुझे छह रंग मिले हैं जिन्हें मैं 5 बार लूप करना चाहता हूं। हमें तीस स्टॉप मिले हैं। हम सभी रंगों का उपयोग करके लूप करते हैं j
। जब j
6 हो जाते हैं तो अधिक रंग नहीं होते हैं (छह सरणी में सातवां रंग है लेकिन सरणी में केवल छह रंग हैं)। तो प्रत्येक छह में से कई हम फिर से शुरू करते हैं। 0. हम सिर्फ अगले रंग की ओर बढ़ते हैं।
अब हमें केवल अंतिम रंगीन स्टॉप को 100% जोड़ना होगा।
//Now here is where the magic starts
for(i=0;i<totalNumberOfStops;i++){
var newStop = newGradient.gradientStops.add();
newStop.rampPoint = i * gradientInterval;
var modulus = i % numberOfColors;
if(modulus === 0){
j = 0;
}else{
j+=1;
}
newStop.color = colors[j];
}
var lastStop = newGradient.gradientStops.add();
lastStop.rampPoint = 100;
lastStop.color = colors[colors.length-1];
(6) अंतिम चरण: स्ट्रोक के लिए ढाल को लागू करना। किया हुआ। पार्टी!
//Apply gradient stroke to selected object
var colorOfGradient = new GradientColor();
colorOfGradient.gradient = newGradient;
var topPath = app.activeDocument.pathItems[0];
topPath.stroked = true;
topPath.strokeWidth = 140;
topPath.strokeColor =colorOfGradient;
(7) आपको मैन्युअल रूप से 'स्ट्रोक के साथ ग्रेडिएंट लागू करें' के लिए स्ट्रोक सेट करना पड़ सकता है, क्योंकि मुझे ऐसा करने के लिए कोड नहीं मिला है।
यह कोड विशेष रूप से आपके मामले के लिए बनाया गया था। एक अधिक सामान्य संस्करण यहां पाया जा सकता है: http://pastie.org/10921740
कुछ उदाहरण:
दो रंगों के साथ एक ढाल, दो बार दोहराते हुए:
पांच रंगों के साथ एक ढाल, 10 बार दोहराते हुए:
दो रंगों के साथ एक ढाल, 50 बार दोहराते हुए:
50 बार दोहराए जाने वाले 50 रंगों के साथ एक तेज ढाल: