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);
        // alert ("color: " + color.rgb.red + ", " + color.rgb.green + ", " + color.rgb.blue);
        if (isNotEmpty (color)) {
            // alert ("is not empty");

            var isExistingColor = false;
            for (var k = 0; k < tmpColors.length; ++k) {
                var colorRecorded = tmpColors[k];
                if (isSameColor (colorRecorded, color)) {
                    // alert ("add this existing color as B");
                    tmpDots[k * 2 + 1] = [i + 2, -j + 2];
                    isExistingColor = true;
                    break;
                }
            }

            if (!isExistingColor) {
                // alert ("add this new color as A");
                tmpColors.push (color);
                tmpDots.push ([i + 2, -j + 2]);
                tmpDots.push ([-1, -1]);
            }
        }
    }
}

// alert ("colors length: " + tmpColors.length);
// alert ("dots length: " + tmpDots.length);

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;
    }
}

完成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 【为什么购买本课程?】1、学会Photoshop脚本,可以大幅提高您的工作效率、摆脱大量重复设计任务的束缚;2、扩展Photoshop的功能:天气预报、to-do设计任务管理、中文加拼音、图层文字中英互译、每日一句英语、OCR智能识别图片上的文字内容、 为上万影片批量生成九宫格预览图、为数百个视频自动添加内容不同的片头、自动获取图片的主题颜色、快速生成不限数量并且不重复的漂亮卡通头像、给Photoshop添加猜数字、贪吃蛇游戏等等;3、利用人工智能技术:在Photoshop中识别图片中指定颜色的物体、进行面部识别;4、掌握99%Photoshop设计师不曾接触的技能,打造自己的职场护城河!5、重要的是:只有我们这里提供系统、全面、易学的Photoshop脚本教程,只此一家,别无选择!  【Photoshop脚本是什么?】* Photoshop神秘和强大的一项秘技!* 它可以允许您以代码的方式来操作文档、美化图像、处理图层、控制通道、编辑选区、使用滤镜等等,就像在Photoshop界面上操作一样。* 与PhotoShop动作(Action)相比,PhotoShop脚本更强大、更智能、更富有逻辑判断功能。* PhotoShop脚本主要用于重复性的任务或用于制作非常复杂的特殊效果。 【学会Photoshop脚本,可以做什么?】* 一键给n个图片批量添加水印;* 一键将n个图片批量生成指定尺寸的缩略图;* 一键将PSD网页设计稿的各功能区域,批量输出为Web所用格式;* 一键生成iOS、Andriod应用和游戏必需的十几种尺寸的图标;* 一键将n个小图拼合为一张大图,并输出各小图在大图中的坐标信息;* 甚至开发一款运行在Photoshop上的趣味游戏!我们向您保证,学习PhotoShop脚本所花费的时间,可以在完成几项重复性的复杂任务时得到补偿。快来学习Photoshop脚本吧!  【课程的特点】1、创新的教学模式:手把手教您Photoshop自动化技术,一看就懂,一学就会;2、贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;3、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;4、视频短小精悍:即方便于您的学习和记忆,也方便日后对功能的检索;5、课程源码素材:购买课程之后,进入最后一章的最后一节的课件列表,下载课程源码素材。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值