Affichage des résultats 1 à 6 sur 6
Discussion: Filigrane incrementale
-
12/10/2014, 16h32 #1
- Inscription
- août 2006
- Localisation
- FRANCE
- Âge
- 50
- Messages
- 428
- Boîtier
- 7D + Grip
- Objectif(s)
- 15-85 IS USM + 70-200 F4 L IS+ 50 f1.4
Filigrane incrementale
Bonjour.
Je souhaite avoir un script qui inscrive un numéro incrémentale en bas de ma photo et qui l'enregistre sous le numero + le nom d'origine.
En cherchant sur le net j'ai trouvé ceci :
Code:// vous utilisez ce script à vos propres risques ! #target photoshop // folder selection; var theFolder = Folder.selectDialog ("select folder"); if (theFolder) { var theFolderFiles = retrieveTIFandPSDandJPG (theFolder, []); var originalRulerUnits = preferences.rulerUnits; preferences.rulerUnits = Units.PERCENT; // work through the files; for (var m = 0; m < theFolderFiles.length; m++) { var theNumber = bufferNumberWithZeros(m + 1, 3); var myDocument = app.open(File(theFolderFiles[m])); // getting the name and location; var docName = myDocument.name; var basename = docName.match(/(.*)\.[^\.]+$/)[1]; //getting the location; var docPath = myDocument.path; // create a text layer; var textLayer = myDocument.artLayers.add(); textLayer.kind = LayerKind.TEXT; textLayer.name = "text"; textLayer.blendMode = BlendMode.NORMAL; textLayer.opacity = 100; var myTextRef = textLayer.textItem; myTextRef.size = 150; myTextRef.font = "Arial"; var newColor = new SolidColor(); newColor.rgb.red = 255; newColor.rgb.green = 255; newColor.rgb.blue = 255; myTextRef.color = newColor; myTextRef.position = new Array( 1, 99); myTextRef.contents = theNumber; // jpg options; var jpegOptions = new JPEGSaveOptions(); jpegOptions.quality = 12; jpegOptions.embedColorProfile = true; //save jpg; myDocument.saveAs((new File(docPath+"/"+theNumber+"_"+basename+".jpg")),jpegOptions,true); myDocument.close(SaveOptions.DONOTSAVECHANGES) }; preferences.rulerUnits = originalRulerUnits; }; ////// get tif-, psd-, jpg-files from folder and subfolders ////// function retrieveTIFandPSDandJPG (theFolder, theFiles) { if (!theFiles) {var theFiles = []}; var theContent = theFolder.getFiles(); for (var n = 0; n < theContent.length; n++) { var theObject = theContent[n]; if (theObject.constructor.name == "Folder") { theFiles = retrieveTIFandPSDandJPG(theObject, theFiles) }; if (theObject.name.slice(-4) == ".tif" || theObject.name.slice(-4) == ".psd" || theObject.name.slice(-4) == ".jpg") { theFiles = theFiles.concat(theObject) } }; return theFiles }; ////// buffer number with zeros ////// function bufferNumberWithZeros (number, places) { var theNumberString = String(number); for (var o = 0; o < (places - String(number).length); o++) { theNumberString = String("0" + theNumberString) }; return theNumberString };
Avez vous une idée ?
Merci pour votre aide
-
12/10/2014, 18h08 #2
- Inscription
- septembre 2013
- Localisation
- France (08)
- Âge
- 67
- Messages
- 1 812
- Boîtier
- Eos 70D
- Objectif(s)
- Canon + ...
C'est ce genre de filigrane que tu souhaites ?
How to add text with filename to photo files using Bytescout Watermarking Pro | ByteScout
-
12/10/2014, 18h13 #3
- Inscription
- novembre 2013
- Localisation
- IdF (77)
- Âge
- 61
- Messages
- 2 068
- Boîtier
- 5D3,6D2,7D
- Objectif(s)
- S17-50f2.8, S50f1.4A, C70-200f2.8, S85f1.4, S105f1.4, S120-300f2.8, x1.4+x2
Mes photos publiées
Bonjour,
La variable gérant le numéro c'est "theNumber" sa valeur dépend de "m" qui est initialisé dans la boucle for à 0
Bonne continuation
-
12/10/2014, 18h29 #4
- Inscription
- août 2006
- Localisation
- FRANCE
- Âge
- 50
- Messages
- 428
- Boîtier
- 7D + Grip
- Objectif(s)
- 15-85 IS USM + 70-200 F4 L IS+ 50 f1.4
Bonjour Antec
Oui c'est ceci mais je veux rester sur un script ( gratuit )
je voulais éviter de passé par une appli supplementaire.
Bonjour YVnod77
j'avais compris que la valeur thenumber contrôlais le numero mais je ne veux pas a avoir a modifier le code pour chaque utilisation.
Je pensais qu'il était possible d'avoir une boite de dialogue qui demande le numero de depart.
J'ai fais des essais mais le contenu de ma boite de dialogue est considéré comme du texte
exemple si je rentre 100
l’incrémentation se fait 100 1 - 100 2 - 100 3 - 100 4
voici mon essai :
Code:// vous utilisez ce script à vos propres risques ! #target photoshop // folder selection; var theFolder = Folder.selectDialog ("select folder"); if (theFolder) { var theFolderFiles = retrieveTIFandPSDandJPG (theFolder, []); var originalRulerUnits = preferences.rulerUnits; preferences.rulerUnits = Units.PERCENT; var reponse = prompt("Numero de la première photo ?", "<Entrez ici votre numero>"); if( reponse == null ){ alert("Vous avez cliqué sur Annuler"); } else var r = reponse; } // work through the files; for (var m = 0; m < theFolderFiles.length; m++) { var theNumber = bufferNumberWithZeros(r+ m, 3); var myDocument = app.open(File(theFolderFiles[m])); // getting the name and location; var docName = myDocument.name; var basename = docName.match(/(.*)\.[^\.]+$/)[1]; //getting the location; var docPath = myDocument.path; // create a text layer; var textLayer = myDocument.artLayers.add(); textLayer.kind = LayerKind.TEXT; textLayer.name = "text"; textLayer.blendMode = BlendMode.NORMAL; textLayer.opacity = 100; var myTextRef = textLayer.textItem; myTextRef.size = 150; myTextRef.font = "Arial"; var newColor = new SolidColor(); newColor.rgb.red = 255; newColor.rgb.green = 255; newColor.rgb.blue = 255; myTextRef.color = newColor; myTextRef.position = new Array( 1, 99); myTextRef.contents = theNumber; // jpg options; var jpegOptions = new JPEGSaveOptions(); jpegOptions.quality = 12; jpegOptions.embedColorProfile = true; //save jpg; myDocument.saveAs((new File(docPath+"/"+theNumber+"_"+basename+".jpg")),jpegOptions,true); myDocument.close(SaveOptions.DONOTSAVECHANGES) }; preferences.rulerUnits = originalRulerUnits; ; ////// get tif-, psd-, jpg-files from folder and subfolders ////// function retrieveTIFandPSDandJPG (theFolder, theFiles) { if (!theFiles) {var theFiles = []}; var theContent = theFolder.getFiles(); for (var n = 0; n < theContent.length; n++) { var theObject = theContent[n]; if (theObject.constructor.name == "Folder") { theFiles = retrieveTIFandPSDandJPG(theObject, theFiles) }; if (theObject.name.slice(-4) == ".tif" || theObject.name.slice(-4) == ".psd" || theObject.name.slice(-4) == ".jpg") { theFiles = theFiles.concat(theObject) } }; return theFiles }; ////// buffer number with zeros ////// function bufferNumberWithZeros (number, places) { var theNumberString = String(number); for (var o = 0; o < (places - String(number).length); o++) { theNumberString = String("0" + theNumberString) }; return theNumberString };
-
12/10/2014, 23h00 #5
- Inscription
- novembre 2013
- Localisation
- IdF (77)
- Âge
- 61
- Messages
- 2 068
- Boîtier
- 5D3,6D2,7D
- Objectif(s)
- S17-50f2.8, S50f1.4A, C70-200f2.8, S85f1.4, S105f1.4, S120-300f2.8, x1.4+x2
Mes photos publiées
Je pense que c'est un problème de typage de variable (ou de transtypage, conversion de type)
r et reponse doivent être de type chaine de caractères, m est de type entier, la fonction bufferNumberWithZeros attend un entier "number" et un entier "places"
Je te propose plusieurs tests :
- Retires l'espace devant le m dans l'appel "var theNumber = bufferNumberWithZeros(r+m, 3);"
- Utilises une variable dans l'appel de fonction "var toto = m+r ;" l'appel devient "var theNumber = bufferNumberWithZeros(toto, 3);"
- essaies quelque chose du genre "var r = 0+reponse;" a la place de "var r = reponse;"
- recherches une fonction qui convertisse les chaines de caractères en entier (en gros l'inverse de la fonction string utilisé dans la fonction bufferNumberWithZeros, peut être Int ou Integer ?
-
12/10/2014, 23h35 #6
- Inscription
- août 2006
- Localisation
- FRANCE
- Âge
- 50
- Messages
- 428
- Boîtier
- 7D + Grip
- Objectif(s)
- 15-85 IS USM + 70-200 F4 L IS+ 50 f1.4
Merci pour tes conseils.
c 'est effectivement un problème de type de variable
J'ai trouvé j'ai rajouté un : parseInt et cela fonctionne.
Le script fonctionne mais quelquefois il ne s 'exécute pas complètement.
Photoshop se lance
la fenêtre dossier aussi
la boite de dialogue pour le chiffre de départ aussi
et puis au moment du traitement des photos plus rien.
Le problème peut il venir du poids ou de la résolution des photos cela arrive qu'une fois de temps en temps
Informations de la discussion
Utilisateur(s) sur cette discussion
Il y a actuellement 1 utilisateur(s) naviguant sur cette discussion. (0 utilisateur(s) et 1 invité(s))
Discussions similaires
-
Filigrane sous LR 3.6
Par Golgoth XII° dans le forum LightroomRéponses: 15Dernier message: 17/08/2014, 22h33 -
filigrane de ronce
Par dkeith dans le forum [Noir & Blanc]Réponses: 3Dernier message: 20/10/2011, 14h58 -
Filigrane or not ...
Par Michel_R dans le forum Discussions généralesRéponses: 6Dernier message: 04/06/2010, 23h54 -
filigrane et Lightroom
Par chacha95 dans le forum LightroomRéponses: 2Dernier message: 26/01/2009, 02h28 -
Filigrane
Par gribou dans le forum Les Logiciels photoRéponses: 1Dernier message: 03/05/2007, 17h21