使用Photoshop脚本上传图像

时间:2010-01-28 10:52:31

标签: rest scripting plugins photoshop

通过使用Photoshop的脚本功能,可以将Photoshop中的图像(例如,导出到jpeg的打开图像)上传到某个网站 - REST服务,FTP等吗?例如 - 我在Photoshop中打开了一个图像,然后执行一些特殊的脚本,将其导出的版本发送到Web上的某个位置。我看到这样的东西,但它使用自动生成的批处理文件,在Windows上执行ftp命令。如果有可能的话,我想用更美的东西。或者可能有一些信息知道如何为这个任务制作一个简单的插件。感谢。

5 个答案:

答案 0 :(得分:6)

Photoshop API公开套接字对象。你可以像这样使用它

function sendDataToServer(data) {

    var socket = new Socket(),
        port = 80,
        domain = "www.example.com",
        page = "/path/to/file.php",
        bin;

    if(socket.open(domain + ":" + port,"binary")) {
        socket.write("GET http://" + domain + page + "?data=" + data + " HTTP/1.0\n\n"); 
        bin = socket.read(9999999);
        alert(bin);
        socket.close();
    }

}

这将返回服务器响应以及请求的标头。您可以使用以下方法读取文件:

function getLine(html){
    var line = "", i = 0;
    for (; html.charCodeAt(i) != 10; i++){ // finding line end
        line += html[i] ;
    }
    return line;
}

此方法也会使用getLine方法删除标题:

function removeHeaders(binary){
    var bContinue = true, // flag for finding end of header
        line = "",
        nFirst = 0,
        count = 0;

    while (bContinue) {
        line = getLine(binary) ; // each header line
        bContinue = line.length >= 2 ; // blank header == end of header
        nFirst = line.length + 1 ;
        binary = binary.substr(nFirst) ;
    }

    return binary;
}

答案 1 :(得分:0)

将文件上传到REST Web服务的标准方法是: 1.将POST与Content-Type:application / octet-stream一起使用,包括正文中的图像流。 2.在POSTing时使用“SLUG”标题以提供图像文件名。

我不知道PhotoShop会暴露哪种API,但我想有一个API可以读取图像流,因此使用此API可以准备所需的POST请求并将图像添加到服务器: - )< / p>

希望我帮助过, 吉文

答案 2 :(得分:0)

photoshop中的API不允许网络访问。他们只是控制Photoshop,并且仅限于您可以在Photoshop中执行的用户操作。

我建议使用Automator或其他外部脚本语言来后处理photoshop的输出。

答案 3 :(得分:0)

如果Photoshop API不支持网络访问,您可以尝试从脚本加载Flash / Flex文件,然后在swf中进行上传。

答案 4 :(得分:0)