首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Applescript: Photoshop:如何确定图像是否真的是打开的

Applescript: Photoshop:如何确定图像是否真的是打开的
EN

Stack Overflow用户
提问于 2016-06-24 13:21:44
回答 1查看 225关注 0票数 0

我们有一个用于Photoshop的自动化工具,它使用一个控制应用程序,叫做。

一种情况是我们必须在CameraRAW插件中打开一个原始图像,然后在Photoshop中打开它。这个部分是通过使用系统事件的applet来处理的。当该applet终止时,我们运行Photoshop的处理脚本。

由于有些图片需要相当长的时间才能打开,所以我们必须确保在脚本能够运行之前,图片确实是打开的。…这就是我被困的地方。

目前,我正在使用以下代码,以便等到图像打开( " open“的标准是正确的(并手动测试),所以这里不是问题所在)。

代码语言:javascript
复制
    tell application "Adobe Photoshop CC 2015"
        activate

        tell application "System Events"
            tell application process "Photoshop CC"

                --
                display alert "Waiting for Window"
                --

                repeat
                    try
                        set wn to name of window 1 as text
                        try
                            if (wn contains "(RGB/16") then
                                set wn to "image is open: " & wn
                            end if
                        end try
                        if (wn contains "(RGB/16") then
                            display alert "We are there, quitting now…  " & wn
                            exit repeat
                        end if
                    end try
                    delay 1
                end repeat


            end tell
        end tell

        --
        display alert "Ready for process"
        --
-- and here comes the processing code

end tell

我还尝试设置一个变量,该变量被测试为用于重复的参数,并在满足退出条件时进行更改。

试图在重复循环中创建偶数警报并不会产生任何效果;脚本以无限循环结束。

很有可能我错过了显而易见的…所以,我很感谢任何有帮助的提示。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-24 18:41:56

我认为您的脚本有几个小问题,导致了您的问题。

  1. 当我认为您需要name of window 1时,您正在使用name of document 1。使用您的第一个try块,您没有意识到它实际上在name of window 1上产生了一个错误
  2. 返回的名称不包含颜色空间和位计数,因此我将结果测试更改为空字符串
  3. 注意在获取文档名称时对try块的修改
  4. 我不认为这是必要的,也不认为在这种情况下使用"System“是必要的,所以我修改了下面的版本,没有它。

示例脚本

代码语言:javascript
复制
     tell application "Adobe Photoshop CC 2015" 
        display alert "Waiting for Window"
        repeat
            try
                set wn to name of document 1 as text
            on error
                set wn to ""
            end try

            try
                if wn is not equal to "" then
                    set wn to "image is open: " & wn
                end if
            end try
            if wn is not equal to "" then
                display alert "We are there, quitting now…  " & wn
                exit repeat
            end if
            delay 1
        end repeat

        display alert "Ready for process"

    end tell
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38014507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档