2010-01-28 6 views
2

Est-ce possible de télécharger une image à partir de Photoshop (par exemple, une image ouverte exportée au format jpeg) vers un site Web - service REST, FTP, etc en utilisant les fonctions de script de Photoshop? Par exemple - J'ai une image ouverte dans Photoshop et ensuite exécuter un script spécial qui envoie une version exportée de celui-ci à un endroit sur le web. J'ai vu quelque chose comme ça mais il utilise un fichier batch généré automatiquement qui exécute la commande ftp sous Windows. Je voudrais utiliser quelque chose de plus beau si c'est possible. Ou peut-être il y a quelques informations pour savoir comment faire un simple plugin pour cette tâche. Merci.Télécharger une image avec le script Photoshop

Répondre

0

La méthode standard pour télécharger des fichiers sur le service Web REST est la suivante: 1. Utilisez POST avec Content-Type: application/flux d'octets incluant le flux d'images dans le corps. 2. Utilisez l'en-tête "SLUG" lors de la POST pour fournir le nom du fichier image. Je ne sais pas quel type d'API PhotoShop expose, mais je suppose qu'il y a une API pour lire le flux d'images, donc en utilisant cette API, vous pouvez préparer la requête POST requise et ajouter l'image à votre serveur :-)

espoir que j'ai aidé, Shay

0

Les API de Photoshop dans ne permettent pas l'accès au réseau. Ils contrôlent simplement Photoshop et sont limités aux actions de l'utilisateur que vous pouvez faire dans Photoshop.

Je suggère d'utiliser Automator ou un autre langage de script externe pour post-traiter la sortie de photoshop.

0

Si l'API Photoshop ne prend pas en charge l'accès réseau, vous pouvez essayer de charger un fichier Flash/Flex à partir du script, puis effectuer le téléchargement dans le swf.

6

L'API Photoshop expose un objet socket. Vous pouvez l'utiliser comme ceci

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(); 
    } 

} 

Ceci retournera la réponse du serveur plus les en-têtes pour la demande. Vous pouvez lire le fichier grâce à l'aide d'une méthode comme ceci:

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

également cette méthode dépouillera les en-têtes en utilisant la méthode 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

Incroyable Hugo. Où avez-vous trouvé cela dans les docs? –

+1

Je l'ai trouvé sur un forum quelque part, il y avait beaucoup d'exemples de script et de code partagé. Les forums sont l'endroit à regarder. Cela fait longtemps que je n'ai rien fait de tout ça. –

Questions connexes