2009-04-26 6 views
0

J'essaie d'automatiser le processus de numérisation/recadrage de photos dans Photoshop. Je dois numériser 3 photos à la fois, puis utiliser la commande Recadrer et Redresser les photos de Photoshop, qui crée 3 images distinctes. Après cela, je voudrais enregistrer chacune des images nouvellement créées en tant que PNG. J'ai regardé les scripts JSX et ils semblent très prometteurs. Est ce que j'ai décrit possible d'automatiser dans Photoshop en utilisant JavaScript ou VBScript ou quoi?Comment automatiser Photoshop?

+0

Avez-vous essayé google? Indice CodeProjet ... –

+0

Google n'est jamais venu à l'esprit.. Lien s'il vous plaît. – AngryHacker

Répondre

1

J'ai reçu la réponse sur les forums Photoshop sur adobe. Il se trouve que Photoshop CS4 est totalement scriptable via JavaScript, VBScript et est livré avec un IDE Developer vraiment cool, qui a tout ce que vous attendez (débogueur, fenêtre de montre, code couleur et plus). J'ai été totalement impressionné.

Voici un extrait de référence:

vous pouvez exécuter le script suivant qui va créer un nouveau dossier de l'un et de lot existant divisé tous les fichiers en les nommant existingFileName # 001.png et les mettre en le nouveau dossier (modifié)

#target Photoshop 
app.bringToFront; 
var inFolder = Folder.selectDialog("Please select folder to process"); 
if(inFolder != null){ 
    var fileList = inFolder.getFiles(/\.(jpg|tif|psd|)$/i); 
    var outfolder = new Folder(decodeURI(inFolder) + "/Edited"); 
    if (outfolder.exists == false) outfolder.create(); 
    for(var a = 0 ;a < fileList.length; a++){ 
    if(fileList[a] instanceof File){ 
     var doc= open(fileList[a]); 
     doc.flatten(); 
     var docname = fileList[a].name.slice(0,-4); 
     CropStraighten(); 
     doc.close(SaveOptions.DONOTSAVECHANGES); 
     var count = 1; 
     while(app.documents.length){ 
      var saveFile = new File(decodeURI(outfolder) + "/" + docname +"#"+ zeroPad(count,3) + ".png"); 
      SavePNG(saveFile); 
      activeDocument.close(SaveOptions.DONOTSAVECHANGES) ; 
      count++; 
      } 
     } 
    } 
}; 
function CropStraighten() { 
    function cTID(s) { return app.charIDToTypeID(s); }; 
    function sTID(s) { return app.stringIDToTypeID(s); }; 
    executeAction(sTID('CropPhotosAuto0001'), undefined, DialogModes.NO); 
}; 
function SavePNG(saveFile){ 
    pngSaveOptions = new PNGSaveOptions(); 
    pngSaveOptions.embedColorProfile = true; 
    pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE; 
    pngSaveOptions.matte = MatteType.NONE; 
    pngSaveOptions.quality = 1; 
    pngSaveOptions.PNG8 = false; //24 bit PNG 
    pngSaveOptions.transparency = true; 
    activeDocument.saveAs(saveFile, pngSaveOptions, true, Extension.LOWERCASE); 
} 

function zeroPad(n, s) { 
    n = n.toString(); 
    while (n.length < s) n = '0' + n; 
    return n; 
}; 

Visitez here pour le post complet.

+0

Je vous recommande de coller avec JavaScript/ExtendScript pour écrire des scripts Photoshop. L'utilisation d'autres langages (VBScript, AppleScript, etc.) est déconseillée et aucun autre support DOM ne leur sera fourni. –

1

Avez-vous essayé d'utiliser Photoshop Actions? Je ne parle pas de la partie numérisation, mais tout le reste peut être fait par des actions assez facilement.

2

Je viens de trouver ce script qui a fait le travail pour moi! Il recadrer automatiquement & redresser la photo et enregistrer chaque résultat dans le répertoire que vous avez spécifié.

http://www.tranberry.com/photoshop/photoshop_scripting/PS4GeeksOrlando/IntroScripts/cropAndStraightenBatch.jsx

Enregistrer pour ensuite locale exécuter dans le PS => File => Commande => Parcourir

PS J'ai trouvé dans le commentaire, il a dit que le script peut être exécuté directement par un double-clic de Mac Finder ou Windows Explorer.

Backup gist for the script here

+0

Alors que ce lien peut répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. –

+0

Pas mon code, donc je vais le mettre dans l'essentiel. – Robert

Questions connexes