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