ai脚本实现随机填充色、轮廓色和随机不透明度

作者:胡说八道转稿 来源:飞特网会员投稿文章 浏览次数:加载中... 网友评论 0

这篇教程教飞特的正在学习ai的朋友们用ai脚本实现随机填充色、轮廓色和随机不透明度。ai脚本对于一些新手来说似乎是很高难度的内容。其实不是。利用ai脚本可以让我们更加方便快捷的制作出漂亮的效果。我会连续像飞特的朋友们介绍一些常用的ai脚本。先来看今天的几个随机脚本:

脚本范例:
ai脚本实现随机填充色、轮廓色和随机不透明度 飞特网 ai教程
要用“文件-脚本”来使用,以cs3为例应放在"c:\program files\adobe\adobe illustrator cs3\预设\脚本"下。
当然,也可以放置在其他文件夹中,通过ctrl+f12定位到脚本所在处来使用。
复制以下全部文字到记事本中,保存为以.js结尾的脚本文件(如:脚本.js)即可。

/////////////////////////////////////////////////////////////////
//vary hues / randomize colors -- cs, cs2
//>=--------------------------------------
//vary hues / randomize colors -- cs, cs2
//>=--------------------------------------
// js code (c) copyright: john wundes ( john@wundes.com ) www.wundes.com
//copyright full text here: http://www.wundes.com/js4ai/copyright.txt
//////////////////////////////////////////////////////////////////

//randomize colors.
len = app.activedocument.selection.length;
gradalert = 0;
strokes = false;
if (len == 0) {
alert("please select one or more objects. grouped objects will not be affected.");
} else {
ob = app.activedocument.selection;
var line1 = "1) 要随机填充色,输入1-100的数值(数值越大,明度越小) ";
var line2 = "2) 要随机轮廓色,输入1-100的数值并以英文“s”结尾(数值越大,明度越大) ";
var line3 = "3) 要随机不透明度,输入1-100的最小值和最大值,如30,100 ";

var data = prompt(line1+line2+line3, "");
if ( data == null || data.length ==0 )
{
//user canceled process or didn't enter anything, so do nothing and end nicely.
} else{
if (data.indexof(",")>0) {
   action = data.split(",");
} else {
   action = data.split(" ");
}
//if the 's' is it's own value in the array, detect and snip
if (action[action.length-1] == "s") {
   action.length = action.length-1;
   strokes = true;
}
// or, detect and snip the 's' from the last number in the array
if (action[action.length-1].charat(action[action.length-1].length-1) == "s") {
   action[action.length-1] = action[action.length-1].substr(0,action[action.length-1].length-1)
   //alert(action);
   strokes = true;
}
var baseval = action[0];
for (j=0; j<len; j++) {
   //
   //change opacity here
   if (isnumber(action[0]) && isnumber(action[1]) && action.length == 2) {
    calcnum = ((action[0]*1)+((math.random(1)*(action[1]-action[0]))));
    ob[j].opacity = setlegal(calcnum);
    //
    //change color here:
   } else if (isnumber(action[0], 255) && action.length == 1) {
    if(app.activedocument.documentcolorspace == "documentcolorspace.rgb"){
    
    action[0] = math.round(baseval*2.55);
   
    }
    if (strokes == false) {
     if (ob[j].filled == true) {
      setcolor(ob[j].fillcolor, setlegal(action[0], 255));
     }
    } else {
     if (ob[j].stroked == true) {
      setcolor(ob[j].strokecolor, setlegal(action[0],255));
     }
    }
    //
   } else {
    //break
    j = len;
    error(action[0]);
   }
}
}}
function error(val) {
alert(val+" 数值与脚本不符,应控制在1-100之间!");
}
function isnumber(num, max) {
if (max == undefined) {
   max = 100;
}
if (num>=0 && num<=max) {
   return true;
}
return false;
}
function setlegal(num, max) {
if (max == undefined) {
   max = 100;
}
if (num<0) {
   return -num%max;
} else if (num>max) {
   return max-(num%max);
} else {
   return num;
}
}
function setcolor(obj, dev) {
var d = math.round(math.random(1)*dev);
if (obj == undefined) {
   //do nothing
} else if (obj.typename == "rgbcolor") {
   //alert("rgb");
   d = math.round(math.random(1)*dev);
   var r = obj.red;
   obj.red = setlegal((r-dev)+(d*2), 255);
   d = math.round(math.random(1)*dev);
   var g = obj.green;
   obj.green = setlegal((g-dev)+(d*2), 255);
   d = math.round(math.random(1)*dev);
   var b = obj.blue;
   obj.blue = setlegal((b-dev)+(d*2), 255);
} else if (obj.typename == "spotcolor") {
   //alert("spot");
   var d = math.round(math.random(1)*dev);
   var t = obj.tint;
   obj.tint = setlegal((t-dev)+(d*2), 100);
} else if (obj.typename == "graycolor") {
   //alert("gray");
   var d = math.round(math.random(1)*dev);
   var t = obj.gray;
   obj.gray = (setlegal((t-dev)+(d*2), 100));
} else if (obj.typename == "cmykcolor") {
   //alert("cmyk");
   d = math.round(math.random(1)*dev);
   var c = obj.cyan;
   obj.cyan = setlegal((c-dev)+(d*2), 100);
   d = math.round(math.random(1)*dev);
   var m = obj.magenta;
   obj.magenta = setlegal((m-dev)+(d*2), 100);
   d = math.round(math.random(1)*dev);
   var y = obj.yellow;
   obj.yellow = setlegal((y-dev)+(d*2), 100);
   d = math.round(math.random(1)*dev);
   var k = obj.black;
   obj.black = setlegal((k-dev)+(d*2), 100);
} else if (gradalert != 1 && (obj.typename == "patterncolor" || obj.typename == "gradientcolor")) {
   gradalert = 1;
   alert("patterns and gradients will not be transformed.");
} else {
   //alert("nuthin...");
}
}

上一篇:
下一篇: ai批处理运用

[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]

  • 飞特网大部分教程属网友投稿,并不代表飞特网立场。如果您的教程在飞特网发布后没有注明作者和出处请联系我们处理。
    飞特网会员发布的所有作品版权规作者所有,未经作者同意,任何人不得将其用于商业目的;
    如发现本站有含色情等违反国家法律法规内容的图片及涉及个人肖像权及版权的内容,请即时通知我们,飞特网将立刻删除相关内容.本站原创内容,欢迎转载.请注明出处和作者,谢谢!
    访问本站推荐使用分辨率1280*1024,internet explorer7.0浏览器。