3

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

4

5 回答 5

7

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;
}
于 2012-06-19T20:34:51.657 回答
0

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

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

于 2010-03-16T14:25:57.663 回答
0

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

我不知道 PhotoShop 公开了什么样的 API,但我想有一个 API 可以读取图像流,所以使用这个 API,您可以准备所需的 POST 请求并将图像添加到您的服务器:-)

希望我能帮上忙,谢伊

于 2010-01-28T12:47:31.767 回答
0

可能在 Photoshop 中使用 JavaScript:

http://www.adobe.com/devnet/bridge/pdfs/javascript_tools_guide_cs3.pdf

于 2010-07-18T10:40:22.347 回答
0

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

于 2010-03-20T08:24:36.433 回答