生活随笔
收集整理的這篇文章主要介紹了
Photoshop Scripting 高阶编程(1):取色器的应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Photoshop Scripting 高階編程(1):取色器的應用
有如下示例圖片一張,需要把其中各個圓點的顏色取出,并成對匹配上。
要解決這么幾個問題:
1)如何取色。
2)取色后的存儲與匹配方法。
var doc = app.activeDocument;
var centerX =
375;
var centerY =
627;
var tmpColors =
new Array(
0);
var tmpDots =
new Array(
0);
for (
var i = -
2; i <=
2; i++)
{
for (
var j = -
2; j <=
2; j++){
var tmpX = centerX +
148 * i;
var tmpY = centerY +
148 * j;
var color = getColor(tmpX, tmpY);
if (isNotEmpty (color)) {
var isExistingColor =
false;
for (
var k =
0; k < tmpColors.length; ++k) {
var colorRecorded = tmpColors[k];
if (isSameColor (colorRecorded, color)) {tmpDots[k *
2 +
1] = [i +
2, -j +
2];isExistingColor =
true;
break;}}
if (!isExistingColor) {tmpColors.push (color);tmpDots.push ([i +
2, -j +
2]);tmpDots.push ([-
1, -
1]);}}}
}
var levelNum = doc.name.split(
".")[
0];
var result = levelNum +
"; " + tmpColors.length +
"; ";
for (
var a =
0; a < tmpDots.length; a +=
2) {result += (
"(" + tmpDots[a][
0] +
"," + tmpDots[a][
1] +
"):" +
"(" + tmpDots[a +
1][
0] +
"," + tmpDots[a +
1][
1] +
"); ");
}alert (result);
function getColor(x, y)
{doc.colorSamplers.removeAll();
var myColorSampler = doc.colorSamplers.add([
0,
0]); myColorSampler.move([x, y]);
return myColorSampler.color;
}
function isNotEmpty(color)
{if (color.rgb.red <=
32 && color.rgb.green <=
32 && color.rgb.blue <=
32) {
return false}
else {
return true;}
}
function isSameColor(color1, color2)
{var deltaR = color1.rgb.red - color2.rgb.red;
var deltaG = color1.rgb.green - color2.rgb.green;
var deltaB = color1.rgb.blue - color2.rgb.blue;
if (deltaR <
8 && deltaR > -
8 &&deltaG <
8 && deltaG > -
8 &&deltaB <
8 && deltaB > -
8) {
return true;}
else {
return false;}
}
完成。
總結
以上是生活随笔為你收集整理的Photoshop Scripting 高阶编程(1):取色器的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。