使用Photoshop脚本上传图片

3

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

5个回答

7
Photoshop API 提供了一个 socket 对象,您可以像这样使用它:
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
我在某个论坛上找到了它,那里有很多脚本示例和共享代码。论坛是寻找答案的好地方。我已经很久没有做这些事情了。 - Hugo Scott-Slade

0

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

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


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

0

0
上传文件到REST Web服务的标准方法是: 1. 使用POST和Content-Type: application/octet-stream,将图像流包含在请求体中。 2. 在POST时使用“SLUG”头来提供图像文件名。
我不知道PhotoShop暴露了什么样的API,但我猜测有一个API可以读取图像流。因此,使用此API,您可以准备所需的POST请求并将图像添加到您的服务器 :-)
希望我能帮到您, Shay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接