Загрузить изображение с помощью скриптов Photoshop - PullRequest
3 голосов
/ 28 января 2010

Можно ли загрузить изображение из Photoshop (например, открытое изображение, экспортированное в jpeg) в какое-то веб-место - службу REST, FTP и т. Д., Используя функции сценариев Photoshop? Например, у меня есть изображение, открытое в Photoshop, и затем я выполняю специальный скрипт, который отправляет экспортированную версию в какое-то место через Интернет. Я видел нечто подобное, но он использует автоматически сгенерированный командный файл, который выполняет команду ftp в Windows. Я хотел бы использовать что-то более красивое, если это возможно. Или, может быть, есть некоторая информация, чтобы узнать, как сделать простой плагин для этой задачи. Спасибо.

Ответы [ 5 ]

6 голосов
/ 20 июня 2012

API Photoshop предоставляет объект сокета. Вы можете использовать это так

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;
}
0 голосов
/ 18 июля 2010

Возможно с JavaScript в фотошопе:

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

0 голосов
/ 16 марта 2010

API в Photoshop не позволяют доступ к сети. Они просто управляют фотошопом и ограничены действиями пользователя, которые вы можете выполнять в Photoshop.

Я бы предложил использовать Automator или другой внешний язык сценариев для постобработки результатов Photoshop.

0 голосов
/ 20 марта 2010

Если API Photoshop не поддерживает доступ к сети, вы можете попробовать загрузить файл Flash / Flex из сценария, а затем выполнить загрузку в SWF.

0 голосов
/ 28 января 2010

Стандартный способ загрузки файлов в веб-сервис REST: 1. Используйте POST с Content-Type: application / octet-stream, включая поток изображения в теле. 2. Используйте заголовок «SLUG» при POST, чтобы указать имя файла изображения.

Я не знаю, какой API PhotoShop предоставляет, но я полагаю, что есть API для чтения потока изображений, поэтому с помощью этого API вы можете подготовить необходимый запрос POST и добавить изображение на свой сервер: -)

Надеюсь, что я помог, Шей

...