Sujet: Scripts et copyright

Modérateurs: Modérateurs, Rédacteurs

Poster une réponse

Scripts et copyright

par omarsteau » Mardi 22 Mars 2016 17:45

Bonjour à tous,

J'utilise un script pour "copyrighter" mes photos par lots. Le script ajoute un texte et le positionne en bas et au centre de la photo.

Bien,

Le problème , c'est que toutes les photos ne sont pas de le même taille , ni parfois de la même résolution ......
Le texte se retrouve donc écrit, parfois en petit, parfois en gros, bref , ce n'est pas uniforme.

A moins de le faire individuellement sur chaque photo, je n'ai pas de solution.

Si quelqu'un veut bien m'aider , car il y a une centaine de photos à traiter.

Olivier

omarsteau

..........
..........

Messages: 9

Inscription: 22 Mar 2016

Objectif 1:

Publicité

par Dormeur74 » Mardi 22 Mars 2016 19:43

Je pense que tu dois probablement utiliser une "action" et non pas un "script". Le problème de terminologie vient des premières traductions de Photoshop, donc tu n'y es pour rien. Il existe deux types d'outils sous PS :
- les scripts (VBScript = Windows, Applescript = Mac OS et Javascript pour les deux).
- les actions sont des macro-commandes qu'on peut enregistrer sous la forme d'un fichier portant l'extension .ATN et exploiter dans un traitement par lots.

Les scripts sont beaucoup plus puissants que les actions. Voici ce qu'il est possible de faire :
- déterminer la police Postscript choisie par l'utilisateur (le nom de la police dans la liste de PS n'est pas son nom Postscript)
- choisir un des 9 emplacements clés sur la photo (haut, mi-hauteur, bas et gauche, centré, droite)
- déterminer si la zone où le texte doit être écrit est claire (donc police noire) ou foncée (donc police blanche)
- déterminer la taille de la police en fonction de la largeur de l'image
- aplatir l'image (JPEG ou PNG) ou non (PSD) dans un dossier séparé
- traiter par lot toutes les photos d'un dossier quelle que soit la largeur des images.

Si ce n'est pas urgent, je peux t'écrire un script. Mais il faudra suivre le ballon, car je me fais régulièrement bananer en tapant du code pour des prunes, ici, là et même sur le site d'Adobe. Tiens, un truc que j'ai en ce moment sur mon établi pour Javascript.

Photos: 137
Dormeur74

Membre VIP
Membre VIP

Messages: 1021

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Boitier 1: - Nikon D4s

Boitier 2: - Nikon F

Boitier 3: - Nikon F2

Boitier 4: - Nikon F3

Boitier 5: - Nikon F6

Objectif 1: - Nikkor 24 f/2.8 D

Objectif 2: - PC-Nikkor 35mm f/2,8

Objectif 3: - Micro-Nikkor 105mm f/2.8G AF-S VR IF-ED

Objectif 4: - Nikkor 70-210 f4 AF

Objectif 5: - Nikkor 200-400mm f/4G ED-IF AF-S Vr

Objectif 6: - Nikkor 24-120mm f/4G ED AF-S VR

Objectif 7: - Micro Nikkor AI-S 55mm f/3.5 Micro

Objectif 8: - Nikkor 70-200mm f/2.8G ED AF-S VRII

Objectif 9: - Nikkor 24-70mm f/2.8G ED AF-S

Objectif 10: - Nikkor 55mm f/1.2 AI-S

Flash 1: - Nikon SB-900

Flash 2: - Nikon SB-800

par omarsteau » Mardi 22 Mars 2016 21:06

Bon, merci pour ta réponse complète mais .................; je comprend pas tout.
Je ne sais pas programmer .....

omarsteau

..........
..........

Messages: 9

Inscription: 22 Mar 2016

Objectif 1:

par Dormeur74 » Mercredi 23 Mars 2016 6:19

Tu n'auras rien à programmer. Pour faire simple, tu me donnes :
- le nom de la police sous Photoshop que tu veux utiliser
- le texte du copyright
- le format de sortie des images traitées (PSD, JPEG, JPEG optimisé pour le Web, etc.)
- enfin le % occupé par le texte par rapport à la largeur de la photo (ou une photo publiée ici avec le copyright apposé)
Je te fais le script et te dis comment on s'en sert. Je peux difficilement faire mieux.

Photos: 137
Dormeur74

Membre VIP
Membre VIP

Messages: 1021

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Boitier 1: - Nikon D4s

Boitier 2: - Nikon F

Boitier 3: - Nikon F2

Boitier 4: - Nikon F3

Boitier 5: - Nikon F6

Objectif 1: - Nikkor 24 f/2.8 D

Objectif 2: - PC-Nikkor 35mm f/2,8

Objectif 3: - Micro-Nikkor 105mm f/2.8G AF-S VR IF-ED

Objectif 4: - Nikkor 70-210 f4 AF

Objectif 5: - Nikkor 200-400mm f/4G ED-IF AF-S Vr

Objectif 6: - Nikkor 24-120mm f/4G ED AF-S VR

Objectif 7: - Micro Nikkor AI-S 55mm f/3.5 Micro

Objectif 8: - Nikkor 70-200mm f/2.8G ED AF-S VRII

Objectif 9: - Nikkor 24-70mm f/2.8G ED AF-S

Objectif 10: - Nikkor 55mm f/1.2 AI-S

Flash 1: - Nikon SB-900

Flash 2: - Nikon SB-800

Re: Scripts et copyright

par omarsteau » Mercredi 23 Mars 2016 7:53

Ben dis donc , ça c'est super sympa !!!

Je m'en occupe ce soir ...


Big, big merci ...

tu peux aller voir mes photos sur oliviermarsteau.com.
Le site est commençé et est en construction .
Si tu as un site , donne moi son URL, que je le rajoute dans les liens recommandés.


Olivier

omarsteau

..........
..........

Messages: 9

Inscription: 22 Mar 2016

Objectif 1:

Re: Scripts et copyright

par omarsteau » Mercredi 23 Mars 2016 19:36

[bon, j'ai bien regardé ..

- le nom de la police sous Photoshop que tu veux utiliser : ------ >Forte régular en noir avec une ombre blanche, et la transparence réglée à 50 %
- le texte du copyright " ------> © Olivier MARSTEAU
- le format de sortie des images traitées (PSD, JPEG, JPEG optimisé pour le Web, etc.). -------> JPEG.
- enfin le % occupé par le texte par rapport à la largeur de la photo (ou une photo publiée ici avec le copyright apposé) ----- >Je dirais environ 20 %.

Voilà

Et merci encore
olivier

omarsteau

..........
..........

Messages: 9

Inscription: 22 Mar 2016

Objectif 1:

par Dormeur74 » Jeudi 24 Mars 2016 6:20

OK, je te prépare ça, tu l'auras assez rapidement.

Photos: 137
Dormeur74

Membre VIP
Membre VIP

Messages: 1021

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Boitier 1: - Nikon D4s

Boitier 2: - Nikon F

Boitier 3: - Nikon F2

Boitier 4: - Nikon F3

Boitier 5: - Nikon F6

Objectif 1: - Nikkor 24 f/2.8 D

Objectif 2: - PC-Nikkor 35mm f/2,8

Objectif 3: - Micro-Nikkor 105mm f/2.8G AF-S VR IF-ED

Objectif 4: - Nikkor 70-210 f4 AF

Objectif 5: - Nikkor 200-400mm f/4G ED-IF AF-S Vr

Objectif 6: - Nikkor 24-120mm f/4G ED AF-S VR

Objectif 7: - Micro Nikkor AI-S 55mm f/3.5 Micro

Objectif 8: - Nikkor 70-200mm f/2.8G ED AF-S VRII

Objectif 9: - Nikkor 24-70mm f/2.8G ED AF-S

Objectif 10: - Nikkor 55mm f/1.2 AI-S

Flash 1: - Nikon SB-900

Flash 2: - Nikon SB-800

par Dormeur74 » Jeudi 24 Mars 2016 10:47

Si tu veux aller sur le site d'un pixeliste, tu cliques sur son pseudo et tu regardes s'il a un site déclaré.

Mode d'emploi :
Tu sélectionnes tout le code ci-dessous en cliquant sur la commande "Tout sélectionner". Tu copies ce code (Ctrl+C) et tu le colles dans ton bloc-notes (Ctrl+V) ; ensuite tu sauvegardes ton fichier où tu veux sur ton disque dur avec le nom de ton choix et l'extension .JSX (tu devras te rappeler où tu l'as mis).
Tu lances PS et tu exécutes ce code en passant par Fichier...Scripts...Parcourir...
Le programme contient un navigateur qui va te permettre de sélectionner le dossier contenant les photos à traiter
Tout le reste est automatique. Le programme va créer un sous-dossier ../sauvegarde/ dans lequel les images avec le copyright seront sauvegardées au format JPEG, mais aussi au format PSD, pour que tu puisses, au besoin, changer la couleur du texte.
Tu testes et tu me dis.

Code: Tout sélectionner
/********************************************************************************************************************************
                                                     DESCRIPTIF
 ********************************************************************************************************************************
Ce script permet  :
- de placer un copyright au bas et au centre d'une photo. Ce copyright sera blanc si la zone qu'il occupe est foncée
  et noir dans le cas contraire pour qu'il soit lisible. La taille des caractères sera proportionnelle à la largeur des
  photos. La définition et la résolution des photos ne seront pas changées
  L'opaciteé et le grossissement de l'ombre sont paramétrés aux lignes 29 et 30. 50% et 0% par défaut
  La distance, le grossissement et la taille de l'ombre peuvent être modifiées aux lignes 71 et 72 (par défaut 600 et 600)
********************************************************************************************************************************/

// MAC Finder ou WINDOWS Explorer, on autorise le double clic  et on fait passer Photoshop au 1er plan
#target photoshop
app.bringToFront();

// On mémorise l'unité choisie dans les préférences  de l'utilisateur pour pouvoir la restaurer après le traitement et on met tout en POINTS
var regleUnite = app.preferences.rulerUnits;
var typeUnite = app.preferences.typeUnits;
// On va travailler en Points pour ne pas avoir de conversion à faire en fonction de la résolution de l'image
app.preferences.rulerUnits = Units.POINTS;
app.preferences.typeUnits = TypeUnits.POINTS;

// Déclaration des variables ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var aplatir = false; // true -> si on veut  aplatir l'image avant la sauvegarde, mais je le déconseille, car on ne pourra
// ni déplacer , ni changer la couleur du copyright
var copyright = "©Olivier MARSTEAU";// Le texte du copyright copyright
var ratioPolice = 1.666; // Le ratio doit être compris entre 1 et 10, 10 étant la totalité de la largeur de l'image
var ajustement=77;
var opaciteOmbre=50; // Pourcentage de 0 à 100
var grossiOmbre=10; // Pourcentage de 0 à 100
var largeurCopyright = 0; // Initialisation de la largeur en points du copyright
var postscriptName = "ForteMT"; // Il est indispensable de connaître le nom Postscript de la police
var posX = 0;
var posY = 0;

// Options de sauvegarde au format PSD
var psd_Options  = new PhotoshopSaveOptions(); // [PhotoshopSaveOptions]
psd_Options.layers  = true; // préserve les calques
psd_Options.embedColorProfile = true; // préserve le profil colorimétrique
psd_Options.annotations = true; // préserve les annotations
psd_Options.alphaChannels = true; // préserve les canaux alpha
psd_Options.spotColors = true; // préserve les encres

// Options de sauvegarde au format JPEG
jpegOptions = new JPEGSaveOptions();
jpegOptions.embedColorProfile = true;
jpegOptions.formatOptions = FormatOptions.STANDARDBASELINE;
jpegOptions.matte = MatteType.NONE;
jpegOptions.quality = 10;
// Fin déclaration des variables +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// On sélectionne le dossier contenant les images à traiter et on met toutes les images à traiter dans un tableau
var inputFolder = Folder.selectDialog("Sélectionnez le dossier contenant les images à traiter : ");
var outputFolder = Folder(inputFolder + "/sauvegarde");
if (!outputFolder.exists) outputFolder.create();
var fileList = inputFolder.getFiles(/\.(jpg|jpeg|tif|psd|png|)$/i);
// On traite une à une toutes les images en skippant les messages d'alerte (profils colorimétriques)
app.displayDialogs = DialogModes.NO;

// On traite une à une toutes les images trouvées
if (fileList.length>0)
{
   for (var i= 0;i<fileList.length;i++)
   {
      var docRef = open(fileList[i]);
      var docName  = docRef.name;
      var docName  = docName.substring( 0, docName.indexOf('.') ); 
      var docPath = docRef.path;
      var resolution = app.activeDocument.resolution;
      var largeur = app.activeDocument.width;
      var largeurOmbre = 2+(largeur / 600);
      var distanceOmbre = 2+(largeur / 600);
      var hauteur = app.activeDocument.height;
       largeurCopyright = largeur * ratioPolice;
      largeurCopyright = largeurCopyright/ajustement;
      var calque = app.activeDocument.artLayers.add();
      calque.name = "Copyright";
      calque.kind = LayerKind.TEXT;
      calque.textItem.contents = copyright;
      calque.transparency = true;
      calque.transparencyAmount=30;
      calque.textItem.font = postscriptName;
      calque.textItem.size = largeurCopyright;
      var taillePolice = largeurCopyright;

      // On calcule la largeur et la hauteur de la signature à l'aide d'un calque temporaire
      var newLayer = calque.duplicate();
      newLayer.rasterize(RasterizeType.ENTIRELAYER);
      var largeurCopyright = newLayer.bounds[2] - newLayer.bounds[0];
      var hauteurCopyright = newLayer.bounds[3] - newLayer.bounds[1];
      newLayer.remove();
      
      // On positionne le copyright en bas et au centre de l'image
      var x1 =  Number(largeur/2) - Number(largeurCopyright/2);
      var y2 =  Number(hauteur) - Number(hauteurCopyright/2);
      var posCopyright = new Array(x1, y2);
      calque.textItem.position = posCopyright;
      var renforcement=ombrePortee(taillePolice, largeurOmbre, grossiOmbre, distanceOmbre, opaciteOmbre);

      // On sauvegarde l'image au format PSD pour pouvoir revenir dessus et au format JPEG dans ../sauvegarde/
      docRef.saveAs( File(outputFolder + '/' + docName + ".psd" ), psd_Options, true );
      docRef.flatten();
      docRef.saveAs( File(outputFolder + '/' + docName + ".jpg" ), jpegOptions, true );
      app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
   }   
}

// Ne rien modifier dans la fonction ci-dessous
function ombrePortee(taillePolice, largeurOmbre, grossiOmbre, distanceOmbre, opacite)
{

// =======================================================
var idsetd = charIDToTypeID( "setd" );
    var desc239 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
        var ref74 = new ActionReference();
        var idTxLr = charIDToTypeID( "TxLr" );
        var idOrdn = charIDToTypeID( "Ordn" );
        var idTrgt = charIDToTypeID( "Trgt" );
        ref74.putEnumerated( idTxLr, idOrdn, idTrgt );
    desc239.putReference( idnull, ref74 );
    var idT = charIDToTypeID( "T   " );
        var desc240 = new ActionDescriptor();
        var idTxt = charIDToTypeID( "Txt " );
        desc240.putString( idTxt, "©Olivier MARSTEAU" );
        var idwarp = stringIDToTypeID( "warp" );
            var desc241 = new ActionDescriptor();
            var idwarpStyle = stringIDToTypeID( "warpStyle" );
            var idwarpStyle = stringIDToTypeID( "warpStyle" );
            var idwarpNone = stringIDToTypeID( "warpNone" );
            desc241.putEnumerated( idwarpStyle, idwarpStyle, idwarpNone );
            var idwarpValue = stringIDToTypeID( "warpValue" );
            desc241.putDouble( idwarpValue, 0.000000 );
            var idwarpPerspective = stringIDToTypeID( "warpPerspective" );
            desc241.putDouble( idwarpPerspective, 0.000000 );
            var idwarpPerspectiveOther = stringIDToTypeID( "warpPerspectiveOther" );
            desc241.putDouble( idwarpPerspectiveOther, 0.000000 );
            var idwarpRotate = stringIDToTypeID( "warpRotate" );
            var idOrnt = charIDToTypeID( "Ornt" );
            var idHrzn = charIDToTypeID( "Hrzn" );
            desc241.putEnumerated( idwarpRotate, idOrnt, idHrzn );
        var idwarp = stringIDToTypeID( "warp" );
        desc240.putObject( idwarp, idwarp, desc241 );
        var idtextGridding = stringIDToTypeID( "textGridding" );
        var idtextGridding = stringIDToTypeID( "textGridding" );
        var idNone = charIDToTypeID( "None" );
        desc240.putEnumerated( idtextGridding, idtextGridding, idNone );
        var idOrnt = charIDToTypeID( "Ornt" );
        var idOrnt = charIDToTypeID( "Ornt" );
        var idHrzn = charIDToTypeID( "Hrzn" );
        desc240.putEnumerated( idOrnt, idOrnt, idHrzn );
        var idAntA = charIDToTypeID( "AntA" );
        var idAnnt = charIDToTypeID( "Annt" );
        var idAnCr = charIDToTypeID( "AnCr" );
        desc240.putEnumerated( idAntA, idAnnt, idAnCr );
        var idtextShape = stringIDToTypeID( "textShape" );
            var list29 = new ActionList();
                var desc242 = new ActionDescriptor();
                var idTEXT = charIDToTypeID( "TEXT" );
                var idTEXT = charIDToTypeID( "TEXT" );
                var idPnt = charIDToTypeID( "Pnt " );
                desc242.putEnumerated( idTEXT, idTEXT, idPnt );
                var idOrnt = charIDToTypeID( "Ornt" );
                var idOrnt = charIDToTypeID( "Ornt" );
                var idHrzn = charIDToTypeID( "Hrzn" );
                desc242.putEnumerated( idOrnt, idOrnt, idHrzn );
                var idTrnf = charIDToTypeID( "Trnf" );
                    var desc243 = new ActionDescriptor();
                    var idxx = stringIDToTypeID( "xx" );
                    desc243.putDouble( idxx, 1.000000 );
                    var idxy = stringIDToTypeID( "xy" );
                    desc243.putDouble( idxy, 0.000000 );
                    var idyx = stringIDToTypeID( "yx" );
                    desc243.putDouble( idyx, 0.000000 );
                    var idyy = stringIDToTypeID( "yy" );
                    desc243.putDouble( idyy, 1.000000 );
                    var idtx = stringIDToTypeID( "tx" );
                    desc243.putDouble( idtx, 0.000000 );
                    var idty = stringIDToTypeID( "ty" );
                    desc243.putDouble( idty, 0.000000 );
                var idTrnf = charIDToTypeID( "Trnf" );
                desc242.putObject( idTrnf, idTrnf, desc243 );
                var idrowCount = stringIDToTypeID( "rowCount" );
                desc242.putInteger( idrowCount, 1 );
                var idcolumnCount = stringIDToTypeID( "columnCount" );
                desc242.putInteger( idcolumnCount, 1 );
                var idrowMajorOrder = stringIDToTypeID( "rowMajorOrder" );
                desc242.putBoolean( idrowMajorOrder, true );
                var idrowGutter = stringIDToTypeID( "rowGutter" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc242.putUnitDouble( idrowGutter, idPnt, 0.000000 );
                var idcolumnGutter = stringIDToTypeID( "columnGutter" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc242.putUnitDouble( idcolumnGutter, idPnt, 0.000000 );
                var idSpcn = charIDToTypeID( "Spcn" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc242.putUnitDouble( idSpcn, idPnt, 0.000000 );
                var idframeBaselineAlignment = stringIDToTypeID( "frameBaselineAlignment" );
                var idframeBaselineAlignment = stringIDToTypeID( "frameBaselineAlignment" );
                var idalignByAscent = stringIDToTypeID( "alignByAscent" );
                desc242.putEnumerated( idframeBaselineAlignment, idframeBaselineAlignment, idalignByAscent );
                var idfirstBaselineMinimum = stringIDToTypeID( "firstBaselineMinimum" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc242.putUnitDouble( idfirstBaselineMinimum, idPnt, 0.000000 );
                var idbase = stringIDToTypeID( "base" );
                    var desc244 = new ActionDescriptor();
                    var idHrzn = charIDToTypeID( "Hrzn" );
                    desc244.putDouble( idHrzn, 0.000000 );
                    var idVrtc = charIDToTypeID( "Vrtc" );
                    desc244.putDouble( idVrtc, 0.000000 );
                var idPnt = charIDToTypeID( "Pnt " );
                desc242.putObject( idbase, idPnt, desc244 );
            var idtextShape = stringIDToTypeID( "textShape" );
            list29.putObject( idtextShape, desc242 );
        desc240.putList( idtextShape, list29 );
        var idTxtt = charIDToTypeID( "Txtt" );
            var list30 = new ActionList();
                var desc245 = new ActionDescriptor();
                var idFrom = charIDToTypeID( "From" );
                desc245.putInteger( idFrom, 0 );
                var idT = charIDToTypeID( "T   " );
                desc245.putInteger( idT, 18 );
                var idTxtS = charIDToTypeID( "TxtS" );
                    var desc246 = new ActionDescriptor();
                    var idstyleSheetHasParent = stringIDToTypeID( "styleSheetHasParent" );
                    desc246.putBoolean( idstyleSheetHasParent, true );
                    var idfontPostScriptName = stringIDToTypeID( "fontPostScriptName" );
                    desc246.putString( idfontPostScriptName, "ForteMT" );
                    var idFntN = charIDToTypeID( "FntN" );
                    desc246.putString( idFntN, "Forte" );
                    var idFntS = charIDToTypeID( "FntS" );
                    desc246.putString( idFntS, "Regular" );
                    var idScrp = charIDToTypeID( "Scrp" );
                    desc246.putInteger( idScrp, 0 );
                    var idFntT = charIDToTypeID( "FntT" );
                    desc246.putInteger( idFntT, 1 );
                    var idSz = charIDToTypeID( "Sz  " );
                    var idPnt = charIDToTypeID( "#Pnt" );
               // L'ombre est fonction de la taille de la police
               desc246.putUnitDouble( idSz, idPnt, taillePolice );
                    var idHrzS = charIDToTypeID( "HrzS" );
                    desc246.putDouble( idHrzS, 100.000000 );
                    var idVrtS = charIDToTypeID( "VrtS" );
                    desc246.putDouble( idVrtS, 100.000000 );
                    var idsyntheticBold = stringIDToTypeID( "syntheticBold" );
                    desc246.putBoolean( idsyntheticBold, false );
                    var idsyntheticItalic = stringIDToTypeID( "syntheticItalic" );
                    desc246.putBoolean( idsyntheticItalic, false );
                    var idautoLeading = stringIDToTypeID( "autoLeading" );
                    desc246.putBoolean( idautoLeading, true );
                    var idTrck = charIDToTypeID( "Trck" );
                    desc246.putInteger( idTrck, 0 );
                    var idBsln = charIDToTypeID( "Bsln" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc246.putUnitDouble( idBsln, idPnt, 0.000000 );
                    var idcharacterRotation = stringIDToTypeID( "characterRotation" );
                    desc246.putDouble( idcharacterRotation, 0.000000 );
                    var idAtKr = charIDToTypeID( "AtKr" );
                    var idAtKr = charIDToTypeID( "AtKr" );
                    var idmetricsKern = stringIDToTypeID( "metricsKern" );
                    desc246.putEnumerated( idAtKr, idAtKr, idmetricsKern );
                    var idfontCaps = stringIDToTypeID( "fontCaps" );
                    var idfontCaps = stringIDToTypeID( "fontCaps" );
                    var idNrml = charIDToTypeID( "Nrml" );
                    desc246.putEnumerated( idfontCaps, idfontCaps, idNrml );
                    var idbaseline = stringIDToTypeID( "baseline" );
                    var idbaseline = stringIDToTypeID( "baseline" );
                    var idNrml = charIDToTypeID( "Nrml" );
                    desc246.putEnumerated( idbaseline, idbaseline, idNrml );
                    var idotbaseline = stringIDToTypeID( "otbaseline" );
                    var idotbaseline = stringIDToTypeID( "otbaseline" );
                    var idNrml = charIDToTypeID( "Nrml" );
                    desc246.putEnumerated( idotbaseline, idotbaseline, idNrml );
                    var idstrikethrough = stringIDToTypeID( "strikethrough" );
                    var idstrikethrough = stringIDToTypeID( "strikethrough" );
                    var idstrikethroughOff = stringIDToTypeID( "strikethroughOff" );
                    desc246.putEnumerated( idstrikethrough, idstrikethrough, idstrikethroughOff );
                    var idUndl = charIDToTypeID( "Undl" );
                    var idUndl = charIDToTypeID( "Undl" );
                    var idunderlineOff = stringIDToTypeID( "underlineOff" );
                    desc246.putEnumerated( idUndl, idUndl, idunderlineOff );
                    var idunderlineOffset = stringIDToTypeID( "underlineOffset" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc246.putUnitDouble( idunderlineOffset, idPnt, 0.000000 );
                    var idligature = stringIDToTypeID( "ligature" );
                    desc246.putBoolean( idligature, true );
                    var idaltligature = stringIDToTypeID( "altligature" );
                    desc246.putBoolean( idaltligature, false );
                    var idcontextualLigatures = stringIDToTypeID( "contextualLigatures" );
                    desc246.putBoolean( idcontextualLigatures, false );
                    var idalternateLigatures = stringIDToTypeID( "alternateLigatures" );
                    desc246.putBoolean( idalternateLigatures, false );
                    var idoldStyle = stringIDToTypeID( "oldStyle" );
                    desc246.putBoolean( idoldStyle, false );
                    var idfractions = stringIDToTypeID( "fractions" );
                    desc246.putBoolean( idfractions, false );
                    var idordinals = stringIDToTypeID( "ordinals" );
                    desc246.putBoolean( idordinals, false );
                    var idswash = stringIDToTypeID( "swash" );
                    desc246.putBoolean( idswash, false );
                    var idtitling = stringIDToTypeID( "titling" );
                    desc246.putBoolean( idtitling, false );
                    var idconnectionForms = stringIDToTypeID( "connectionForms" );
                    desc246.putBoolean( idconnectionForms, false );
                    var idstylisticAlternates = stringIDToTypeID( "stylisticAlternates" );
                    desc246.putBoolean( idstylisticAlternates, false );
                    var idornaments = stringIDToTypeID( "ornaments" );
                    desc246.putBoolean( idornaments, false );
                    var idfigureStyle = stringIDToTypeID( "figureStyle" );
                    var idfigureStyle = stringIDToTypeID( "figureStyle" );
                    var idNrml = charIDToTypeID( "Nrml" );
                    desc246.putEnumerated( idfigureStyle, idfigureStyle, idNrml );
                    var idproportionalMetrics = stringIDToTypeID( "proportionalMetrics" );
                    desc246.putBoolean( idproportionalMetrics, false );
                    var idkana = stringIDToTypeID( "kana" );
                    desc246.putBoolean( idkana, false );
                    var iditalics = stringIDToTypeID( "italics" );
                    desc246.putBoolean( iditalics, false );
                    var idruby = stringIDToTypeID( "ruby" );
                    desc246.putBoolean( idruby, false );
                    var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                    var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                    var idrotated = stringIDToTypeID( "rotated" );
                    desc246.putEnumerated( idbaselineDirection, idbaselineDirection, idrotated );
                    var idtextLanguage = stringIDToTypeID( "textLanguage" );
                    var idtextLanguage = stringIDToTypeID( "textLanguage" );
                    var idstandardFrenchLanguage = stringIDToTypeID( "standardFrenchLanguage" );
                    desc246.putEnumerated( idtextLanguage, idtextLanguage, idstandardFrenchLanguage );
                    var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                    var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                    var iddefaultForm = stringIDToTypeID( "defaultForm" );
                    desc246.putEnumerated( idjapaneseAlternate, idjapaneseAlternate, iddefaultForm );
                    var idmojiZume = stringIDToTypeID( "mojiZume" );
                    desc246.putDouble( idmojiZume, 0.000000 );
                    var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                    var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                    var idroman = stringIDToTypeID( "roman" );
                    desc246.putEnumerated( idgridAlignment, idgridAlignment, idroman );
                    var idenableWariChu = stringIDToTypeID( "enableWariChu" );
                    desc246.putBoolean( idenableWariChu, false );
                    var idwariChuCount = stringIDToTypeID( "wariChuCount" );
                    desc246.putInteger( idwariChuCount, 2 );
                    var idwariChuLineGap = stringIDToTypeID( "wariChuLineGap" );
                    desc246.putInteger( idwariChuLineGap, 0 );
                    var idwariChuScale = stringIDToTypeID( "wariChuScale" );
                    desc246.putDouble( idwariChuScale, 0.500000 );
                    var idwariChuWidow = stringIDToTypeID( "wariChuWidow" );
                    desc246.putInteger( idwariChuWidow, 2 );
                    var idwariChuOrphan = stringIDToTypeID( "wariChuOrphan" );
                    desc246.putInteger( idwariChuOrphan, 2 );
                    var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                    var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                    var idwariChuAutoJustify = stringIDToTypeID( "wariChuAutoJustify" );
                    desc246.putEnumerated( idwariChuJustification, idwariChuJustification, idwariChuAutoJustify );
                    var idtcyUpDown = stringIDToTypeID( "tcyUpDown" );
                    desc246.putInteger( idtcyUpDown, 0 );
                    var idtcyLeftRight = stringIDToTypeID( "tcyLeftRight" );
                    desc246.putInteger( idtcyLeftRight, 0 );
                    var idleftAki = stringIDToTypeID( "leftAki" );
                    desc246.putDouble( idleftAki, -1.000000 );
                    var idrightAki = stringIDToTypeID( "rightAki" );
                    desc246.putDouble( idrightAki, -1.000000 );
                    var idjiDori = stringIDToTypeID( "jiDori" );
                    desc246.putInteger( idjiDori, 0 );
                    var idnoBreak = stringIDToTypeID( "noBreak" );
                    desc246.putBoolean( idnoBreak, false );
                    var idClr = charIDToTypeID( "Clr " );
                        var desc247 = new ActionDescriptor();
                        var idRd = charIDToTypeID( "Rd  " );
                        desc247.putDouble( idRd, 0.000000 );
                        var idGrn = charIDToTypeID( "Grn " );
                        desc247.putDouble( idGrn, 0.000000 );
                        var idBl = charIDToTypeID( "Bl  " );
                        desc247.putDouble( idBl, 0.000000 );
                    var idRGBC = charIDToTypeID( "RGBC" );
                    desc246.putObject( idClr, idRGBC, desc247 );
                    var idstrokeColor = stringIDToTypeID( "strokeColor" );
                        var desc248 = new ActionDescriptor();
                        var idRd = charIDToTypeID( "Rd  " );
                        desc248.putDouble( idRd, 0.000000 );
                        var idGrn = charIDToTypeID( "Grn " );
                        desc248.putDouble( idGrn, 0.000000 );
                        var idBl = charIDToTypeID( "Bl  " );
                        desc248.putDouble( idBl, 0.000000 );
                    var idRGBC = charIDToTypeID( "RGBC" );
                    desc246.putObject( idstrokeColor, idRGBC, desc248 );
                    var idFl = charIDToTypeID( "Fl  " );
                    desc246.putBoolean( idFl, true );
                    var idStrk = charIDToTypeID( "Strk" );
                    desc246.putBoolean( idStrk, false );
                    var idfillFirst = stringIDToTypeID( "fillFirst" );
                    desc246.putBoolean( idfillFirst, true );
                    var idfillOverPrint = stringIDToTypeID( "fillOverPrint" );
                    desc246.putBoolean( idfillOverPrint, false );
                    var idstrokeOverPrint = stringIDToTypeID( "strokeOverPrint" );
                    desc246.putBoolean( idstrokeOverPrint, false );
                    var idlineCap = stringIDToTypeID( "lineCap" );
                    var idlineCap = stringIDToTypeID( "lineCap" );
                    var idbuttCap = stringIDToTypeID( "buttCap" );
                    desc246.putEnumerated( idlineCap, idlineCap, idbuttCap );
                    var idlineJoin = stringIDToTypeID( "lineJoin" );
                    var idlineJoin = stringIDToTypeID( "lineJoin" );
                    var idmiterJoin = stringIDToTypeID( "miterJoin" );
                    desc246.putEnumerated( idlineJoin, idlineJoin, idmiterJoin );
                    var idlineWidth = stringIDToTypeID( "lineWidth" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc246.putUnitDouble( idlineWidth, idPnt, 0.240000 );
                    var idmiterLimit = stringIDToTypeID( "miterLimit" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc246.putUnitDouble( idmiterLimit, idPnt, 0.960000 );
                    var idlineDashoffset = stringIDToTypeID( "lineDashoffset" );
                    desc246.putDouble( idlineDashoffset, 0.000000 );
                var idTxtS = charIDToTypeID( "TxtS" );
                desc245.putObject( idTxtS, idTxtS, desc246 );
            var idTxtt = charIDToTypeID( "Txtt" );
            list30.putObject( idTxtt, desc245 );
        desc240.putList( idTxtt, list30 );
        var idparagraphStyleRange = stringIDToTypeID( "paragraphStyleRange" );
            var list31 = new ActionList();
                var desc249 = new ActionDescriptor();
                var idFrom = charIDToTypeID( "From" );
                desc249.putInteger( idFrom, 0 );
                var idT = charIDToTypeID( "T   " );
                desc249.putInteger( idT, 18 );
                var idparagraphStyle = stringIDToTypeID( "paragraphStyle" );
                    var desc250 = new ActionDescriptor();
                    var idAlgn = charIDToTypeID( "Algn" );
                    var idAlg = charIDToTypeID( "Alg " );
                    var idLeft = charIDToTypeID( "Left" );
                    desc250.putEnumerated( idAlgn, idAlg, idLeft );
                    var idfirstLineIndent = stringIDToTypeID( "firstLineIndent" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc250.putUnitDouble( idfirstLineIndent, idPnt, 0.000000 );
                    var idstartIndent = stringIDToTypeID( "startIndent" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc250.putUnitDouble( idstartIndent, idPnt, 0.000000 );
                    var idendIndent = stringIDToTypeID( "endIndent" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc250.putUnitDouble( idendIndent, idPnt, 0.000000 );
                    var idspaceBefore = stringIDToTypeID( "spaceBefore" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc250.putUnitDouble( idspaceBefore, idPnt, 0.000000 );
                    var idspaceAfter = stringIDToTypeID( "spaceAfter" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc250.putUnitDouble( idspaceAfter, idPnt, 0.000000 );
                    var iddropCapMultiplier = stringIDToTypeID( "dropCapMultiplier" );
                    desc250.putInteger( iddropCapMultiplier, 1 );
                    var idautoLeadingPercentage = stringIDToTypeID( "autoLeadingPercentage" );
                    desc250.putDouble( idautoLeadingPercentage, 1.200000 );
                    var idleadingType = stringIDToTypeID( "leadingType" );
                    var idleadingType = stringIDToTypeID( "leadingType" );
                    var idleadingBelow = stringIDToTypeID( "leadingBelow" );
                    desc250.putEnumerated( idleadingType, idleadingType, idleadingBelow );
                    var idhyphenate = stringIDToTypeID( "hyphenate" );
                    desc250.putBoolean( idhyphenate, true );
                    var idhyphenateWordSize = stringIDToTypeID( "hyphenateWordSize" );
                    desc250.putInteger( idhyphenateWordSize, 6 );
                    var idhyphenatePreLength = stringIDToTypeID( "hyphenatePreLength" );
                    desc250.putInteger( idhyphenatePreLength, 2 );
                    var idhyphenatePostLength = stringIDToTypeID( "hyphenatePostLength" );
                    desc250.putInteger( idhyphenatePostLength, 2 );
                    var idhyphenateLimit = stringIDToTypeID( "hyphenateLimit" );
                    desc250.putInteger( idhyphenateLimit, 0 );
                    var idhyphenationZone = stringIDToTypeID( "hyphenationZone" );
                    desc250.putDouble( idhyphenationZone, 36.000000 );
                    var idhyphenateCapitalized = stringIDToTypeID( "hyphenateCapitalized" );
                    desc250.putBoolean( idhyphenateCapitalized, true );
                    var idhyphenationPreference = stringIDToTypeID( "hyphenationPreference" );
                    desc250.putDouble( idhyphenationPreference, 0.500000 );
                    var idjustificationWordMinimum = stringIDToTypeID( "justificationWordMinimum" );
                    desc250.putDouble( idjustificationWordMinimum, 0.800000 );
                    var idjustificationWordDesired = stringIDToTypeID( "justificationWordDesired" );
                    desc250.putDouble( idjustificationWordDesired, 1.000000 );
                    var idjustificationWordMaximum = stringIDToTypeID( "justificationWordMaximum" );
                    desc250.putDouble( idjustificationWordMaximum, 1.330000 );
                    var idjustificationLetterMinimum = stringIDToTypeID( "justificationLetterMinimum" );
                    desc250.putDouble( idjustificationLetterMinimum, 0.000000 );
                    var idjustificationLetterDesired = stringIDToTypeID( "justificationLetterDesired" );
                    desc250.putDouble( idjustificationLetterDesired, 0.000000 );
                    var idjustificationLetterMaximum = stringIDToTypeID( "justificationLetterMaximum" );
                    desc250.putDouble( idjustificationLetterMaximum, 0.000000 );
                    var idjustificationGlyphMinimum = stringIDToTypeID( "justificationGlyphMinimum" );
                    desc250.putDouble( idjustificationGlyphMinimum, 1.000000 );
                    var idjustificationGlyphDesired = stringIDToTypeID( "justificationGlyphDesired" );
                    desc250.putDouble( idjustificationGlyphDesired, 1.000000 );
                    var idjustificationGlyphMaximum = stringIDToTypeID( "justificationGlyphMaximum" );
                    desc250.putDouble( idjustificationGlyphMaximum, 1.000000 );
                    var idsingleWordJustification = stringIDToTypeID( "singleWordJustification" );
                    var idAlg = charIDToTypeID( "Alg " );
                    var idJstA = charIDToTypeID( "JstA" );
                    desc250.putEnumerated( idsingleWordJustification, idAlg, idJstA );
                    var idhangingRoman = stringIDToTypeID( "hangingRoman" );
                    desc250.putBoolean( idhangingRoman, false );
                    var idautoTCY = stringIDToTypeID( "autoTCY" );
                    desc250.putInteger( idautoTCY, 1 );
                    var idkeepTogether = stringIDToTypeID( "keepTogether" );
                    desc250.putBoolean( idkeepTogether, true );
                    var idburasagari = stringIDToTypeID( "burasagari" );
                    var idburasagari = stringIDToTypeID( "burasagari" );
                    var idburasagariNone = stringIDToTypeID( "burasagariNone" );
                    desc250.putEnumerated( idburasagari, idburasagari, idburasagariNone );
                    var idpreferredKinsokuOrder = stringIDToTypeID( "preferredKinsokuOrder" );
                    var idpreferredKinsokuOrder = stringIDToTypeID( "preferredKinsokuOrder" );
                    var idpushIn = stringIDToTypeID( "pushIn" );
                    desc250.putEnumerated( idpreferredKinsokuOrder, idpreferredKinsokuOrder, idpushIn );
                    var idkurikaeshiMojiShori = stringIDToTypeID( "kurikaeshiMojiShori" );
                    desc250.putBoolean( idkurikaeshiMojiShori, false );
                    var idtextEveryLineComposer = stringIDToTypeID( "textEveryLineComposer" );
                    desc250.putBoolean( idtextEveryLineComposer, false );
                    var iddefaultTabWidth = stringIDToTypeID( "defaultTabWidth" );
                    desc250.putDouble( iddefaultTabWidth, 36.000000 );
                    var iddefaultStyle = stringIDToTypeID( "defaultStyle" );
                        var desc251 = new ActionDescriptor();
                        var idfontPostScriptName = stringIDToTypeID( "fontPostScriptName" );
                        desc251.putString( idfontPostScriptName, "MyriadPro-Regular" );
                        var idFntN = charIDToTypeID( "FntN" );
                        desc251.putString( idFntN, "Myriad Pro" );
                        var idFntS = charIDToTypeID( "FntS" );
                        desc251.putString( idFntS, "Regular" );
                        var idScrp = charIDToTypeID( "Scrp" );
                        desc251.putInteger( idScrp, 0 );
                        var idFntT = charIDToTypeID( "FntT" );
                        desc251.putInteger( idFntT, 0 );
                        var idSz = charIDToTypeID( "Sz  " );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc251.putUnitDouble( idSz, idPnt, 2.880000 );
                        var idHrzS = charIDToTypeID( "HrzS" );
                        desc251.putDouble( idHrzS, 100.000000 );
                        var idVrtS = charIDToTypeID( "VrtS" );
                        desc251.putDouble( idVrtS, 100.000000 );
                        var idsyntheticBold = stringIDToTypeID( "syntheticBold" );
                        desc251.putBoolean( idsyntheticBold, false );
                        var idsyntheticItalic = stringIDToTypeID( "syntheticItalic" );
                        desc251.putBoolean( idsyntheticItalic, false );
                        var idautoLeading = stringIDToTypeID( "autoLeading" );
                        desc251.putBoolean( idautoLeading, true );
                        var idTrck = charIDToTypeID( "Trck" );
                        desc251.putInteger( idTrck, 0 );
                        var idBsln = charIDToTypeID( "Bsln" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc251.putUnitDouble( idBsln, idPnt, 0.000000 );
                        var idcharacterRotation = stringIDToTypeID( "characterRotation" );
                        desc251.putDouble( idcharacterRotation, 0.000000 );
                        var idAtKr = charIDToTypeID( "AtKr" );
                        var idAtKr = charIDToTypeID( "AtKr" );
                        var idmetricsKern = stringIDToTypeID( "metricsKern" );
                        desc251.putEnumerated( idAtKr, idAtKr, idmetricsKern );
                        var idfontCaps = stringIDToTypeID( "fontCaps" );
                        var idfontCaps = stringIDToTypeID( "fontCaps" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc251.putEnumerated( idfontCaps, idfontCaps, idNrml );
                        var idbaseline = stringIDToTypeID( "baseline" );
                        var idbaseline = stringIDToTypeID( "baseline" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc251.putEnumerated( idbaseline, idbaseline, idNrml );
                        var idotbaseline = stringIDToTypeID( "otbaseline" );
                        var idotbaseline = stringIDToTypeID( "otbaseline" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc251.putEnumerated( idotbaseline, idotbaseline, idNrml );
                        var idstrikethrough = stringIDToTypeID( "strikethrough" );
                        var idstrikethrough = stringIDToTypeID( "strikethrough" );
                        var idstrikethroughOff = stringIDToTypeID( "strikethroughOff" );
                        desc251.putEnumerated( idstrikethrough, idstrikethrough, idstrikethroughOff );
                        var idUndl = charIDToTypeID( "Undl" );
                        var idUndl = charIDToTypeID( "Undl" );
                        var idunderlineOff = stringIDToTypeID( "underlineOff" );
                        desc251.putEnumerated( idUndl, idUndl, idunderlineOff );
                        var idunderlineOffset = stringIDToTypeID( "underlineOffset" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc251.putUnitDouble( idunderlineOffset, idPnt, 0.000000 );
                        var idligature = stringIDToTypeID( "ligature" );
                        desc251.putBoolean( idligature, true );
                        var idaltligature = stringIDToTypeID( "altligature" );
                        desc251.putBoolean( idaltligature, false );
                        var idcontextualLigatures = stringIDToTypeID( "contextualLigatures" );
                        desc251.putBoolean( idcontextualLigatures, false );
                        var idalternateLigatures = stringIDToTypeID( "alternateLigatures" );
                        desc251.putBoolean( idalternateLigatures, false );
                        var idoldStyle = stringIDToTypeID( "oldStyle" );
                        desc251.putBoolean( idoldStyle, false );
                        var idfractions = stringIDToTypeID( "fractions" );
                        desc251.putBoolean( idfractions, false );
                        var idordinals = stringIDToTypeID( "ordinals" );
                        desc251.putBoolean( idordinals, false );
                        var idswash = stringIDToTypeID( "swash" );
                        desc251.putBoolean( idswash, false );
                        var idtitling = stringIDToTypeID( "titling" );
                        desc251.putBoolean( idtitling, false );
                        var idconnectionForms = stringIDToTypeID( "connectionForms" );
                        desc251.putBoolean( idconnectionForms, false );
                        var idstylisticAlternates = stringIDToTypeID( "stylisticAlternates" );
                        desc251.putBoolean( idstylisticAlternates, false );
                        var idornaments = stringIDToTypeID( "ornaments" );
                        desc251.putBoolean( idornaments, false );
                        var idfigureStyle = stringIDToTypeID( "figureStyle" );
                        var idfigureStyle = stringIDToTypeID( "figureStyle" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc251.putEnumerated( idfigureStyle, idfigureStyle, idNrml );
                        var idproportionalMetrics = stringIDToTypeID( "proportionalMetrics" );
                        desc251.putBoolean( idproportionalMetrics, false );
                        var idkana = stringIDToTypeID( "kana" );
                        desc251.putBoolean( idkana, false );
                        var iditalics = stringIDToTypeID( "italics" );
                        desc251.putBoolean( iditalics, false );
                        var idruby = stringIDToTypeID( "ruby" );
                        desc251.putBoolean( idruby, false );
                        var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                        var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                        var idrotated = stringIDToTypeID( "rotated" );
                        desc251.putEnumerated( idbaselineDirection, idbaselineDirection, idrotated );
                        var idtextLanguage = stringIDToTypeID( "textLanguage" );
                        var idtextLanguage = stringIDToTypeID( "textLanguage" );
                        var idstandardFrenchLanguage = stringIDToTypeID( "standardFrenchLanguage" );
                        desc251.putEnumerated( idtextLanguage, idtextLanguage, idstandardFrenchLanguage );
                        var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                        var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                        var iddefaultForm = stringIDToTypeID( "defaultForm" );
                        desc251.putEnumerated( idjapaneseAlternate, idjapaneseAlternate, iddefaultForm );
                        var idmojiZume = stringIDToTypeID( "mojiZume" );
                        desc251.putDouble( idmojiZume, 0.000000 );
                        var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                        var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                        var idroman = stringIDToTypeID( "roman" );
                        desc251.putEnumerated( idgridAlignment, idgridAlignment, idroman );
                        var idenableWariChu = stringIDToTypeID( "enableWariChu" );
                        desc251.putBoolean( idenableWariChu, false );
                        var idwariChuCount = stringIDToTypeID( "wariChuCount" );
                        desc251.putInteger( idwariChuCount, 2 );
                        var idwariChuLineGap = stringIDToTypeID( "wariChuLineGap" );
                        desc251.putInteger( idwariChuLineGap, 0 );
                        var idwariChuScale = stringIDToTypeID( "wariChuScale" );
                        desc251.putDouble( idwariChuScale, 0.500000 );
                        var idwariChuWidow = stringIDToTypeID( "wariChuWidow" );
                        desc251.putInteger( idwariChuWidow, 2 );
                        var idwariChuOrphan = stringIDToTypeID( "wariChuOrphan" );
                        desc251.putInteger( idwariChuOrphan, 2 );
                        var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                        var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                        var idwariChuAutoJustify = stringIDToTypeID( "wariChuAutoJustify" );
                        desc251.putEnumerated( idwariChuJustification, idwariChuJustification, idwariChuAutoJustify );
                        var idtcyUpDown = stringIDToTypeID( "tcyUpDown" );
                        desc251.putInteger( idtcyUpDown, 0 );
                        var idtcyLeftRight = stringIDToTypeID( "tcyLeftRight" );
                        desc251.putInteger( idtcyLeftRight, 0 );
                        var idleftAki = stringIDToTypeID( "leftAki" );
                        desc251.putDouble( idleftAki, -1.000000 );
                        var idrightAki = stringIDToTypeID( "rightAki" );
                        desc251.putDouble( idrightAki, -1.000000 );
                        var idjiDori = stringIDToTypeID( "jiDori" );
                        desc251.putInteger( idjiDori, 0 );
                        var idnoBreak = stringIDToTypeID( "noBreak" );
                        desc251.putBoolean( idnoBreak, false );
                        var idClr = charIDToTypeID( "Clr " );
                            var desc252 = new ActionDescriptor();
                            var idRd = charIDToTypeID( "Rd  " );
                            desc252.putDouble( idRd, 100.086052 );
                            var idGrn = charIDToTypeID( "Grn " );
                            desc252.putDouble( idGrn, 100.086052 );
                            var idBl = charIDToTypeID( "Bl  " );
                            desc252.putDouble( idBl, 100.086059 );
                        var idRGBC = charIDToTypeID( "RGBC" );
                        desc251.putObject( idClr, idRGBC, desc252 );
                        var idstrokeColor = stringIDToTypeID( "strokeColor" );
                            var desc253 = new ActionDescriptor();
                            var idRd = charIDToTypeID( "Rd  " );
                            desc253.putDouble( idRd, 100.086052 );
                            var idGrn = charIDToTypeID( "Grn " );
                            desc253.putDouble( idGrn, 100.086052 );
                            var idBl = charIDToTypeID( "Bl  " );
                            desc253.putDouble( idBl, 100.086059 );
                        var idRGBC = charIDToTypeID( "RGBC" );
                        desc251.putObject( idstrokeColor, idRGBC, desc253 );
                        var idFl = charIDToTypeID( "Fl  " );
                        desc251.putBoolean( idFl, true );
                        var idStrk = charIDToTypeID( "Strk" );
                        desc251.putBoolean( idStrk, false );
                        var idfillFirst = stringIDToTypeID( "fillFirst" );
                        desc251.putBoolean( idfillFirst, true );
                        var idfillOverPrint = stringIDToTypeID( "fillOverPrint" );
                        desc251.putBoolean( idfillOverPrint, false );
                        var idstrokeOverPrint = stringIDToTypeID( "strokeOverPrint" );
                        desc251.putBoolean( idstrokeOverPrint, false );
                        var idlineCap = stringIDToTypeID( "lineCap" );
                        var idlineCap = stringIDToTypeID( "lineCap" );
                        var idbuttCap = stringIDToTypeID( "buttCap" );
                        desc251.putEnumerated( idlineCap, idlineCap, idbuttCap );
                        var idlineJoin = stringIDToTypeID( "lineJoin" );
                        var idlineJoin = stringIDToTypeID( "lineJoin" );
                        var idmiterJoin = stringIDToTypeID( "miterJoin" );
                        desc251.putEnumerated( idlineJoin, idlineJoin, idmiterJoin );
                        var idlineWidth = stringIDToTypeID( "lineWidth" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc251.putUnitDouble( idlineWidth, idPnt, 0.240000 );
                        var idmiterLimit = stringIDToTypeID( "miterLimit" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc251.putUnitDouble( idmiterLimit, idPnt, 0.960000 );
                        var idlineDashoffset = stringIDToTypeID( "lineDashoffset" );
                        desc251.putDouble( idlineDashoffset, 0.000000 );
                    var idTxtS = charIDToTypeID( "TxtS" );
                    desc250.putObject( iddefaultStyle, idTxtS, desc251 );
                var idparagraphStyle = stringIDToTypeID( "paragraphStyle" );
                desc249.putObject( idparagraphStyle, idparagraphStyle, desc250 );
            var idparagraphStyleRange = stringIDToTypeID( "paragraphStyleRange" );
            list31.putObject( idparagraphStyleRange, desc249 );
        desc240.putList( idparagraphStyleRange, list31 );
        var idkerningRange = stringIDToTypeID( "kerningRange" );
            var list32 = new ActionList();
        desc240.putList( idkerningRange, list32 );
    var idTxLr = charIDToTypeID( "TxLr" );
    desc239.putObject( idT, idTxLr, desc240 );
executeAction( idsetd, desc239, DialogModes.NO );

// =======================================================
var idsetd = charIDToTypeID( "setd" );
    var desc254 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
        var ref75 = new ActionReference();
        var idPrpr = charIDToTypeID( "Prpr" );
        var idLefx = charIDToTypeID( "Lefx" );
        ref75.putProperty( idPrpr, idLefx );
        var idLyr = charIDToTypeID( "Lyr " );
        var idOrdn = charIDToTypeID( "Ordn" );
        var idTrgt = charIDToTypeID( "Trgt" );
        ref75.putEnumerated( idLyr, idOrdn, idTrgt );
    desc254.putReference( idnull, ref75 );
    var idT = charIDToTypeID( "T   " );
        var desc255 = new ActionDescriptor();
        var idScl = charIDToTypeID( "Scl " );
        var idPrc = charIDToTypeID( "#Prc" );
        desc255.putUnitDouble( idScl, idPrc, 416.666667 );
        var idDrSh = charIDToTypeID( "DrSh" );
            var desc256 = new ActionDescriptor();
            var idenab = charIDToTypeID( "enab" );
            desc256.putBoolean( idenab, true );
            var idMd = charIDToTypeID( "Md  " );
            var idBlnM = charIDToTypeID( "BlnM" );
            var idNrml = charIDToTypeID( "Nrml" );
            desc256.putEnumerated( idMd, idBlnM, idNrml );
            var idClr = charIDToTypeID( "Clr " );
                var desc257 = new ActionDescriptor();
                var idRd = charIDToTypeID( "Rd  " );
                desc257.putDouble( idRd, 255.000000 );
                var idGrn = charIDToTypeID( "Grn " );
                desc257.putDouble( idGrn, 255.000000 );
                var idBl = charIDToTypeID( "Bl  " );
                desc257.putDouble( idBl, 255.000000 );
            var idRGBC = charIDToTypeID( "RGBC" );
            desc256.putObject( idClr, idRGBC, desc257 );
            var idOpct = charIDToTypeID( "Opct" );
            var idPrc = charIDToTypeID( "#Prc" );
// On a paramétré l'opacité de l'ombre à la ligne 29
desc256.putUnitDouble( idOpct, idPrc, opacite );
            var iduglg = charIDToTypeID( "uglg" );
            desc256.putBoolean( iduglg, true );
            var idlagl = charIDToTypeID( "lagl" );
            var idAng = charIDToTypeID( "#Ang" );
            desc256.putUnitDouble( idlagl, idAng, 120.000000 );
            var idDstn = charIDToTypeID( "Dstn" );
            var idPxl = charIDToTypeID( "#Pxl" );
// La largeur de l'ombre dépend de celle de l'image
desc256.putUnitDouble( idDstn, idPxl, largeurOmbre );
            var idCkmt = charIDToTypeID( "Ckmt" );
            var idPxl = charIDToTypeID( "#Pxl" );
// On a paramétré le grossissement de l'ombre à la ligne 30
desc256.putUnitDouble( idCkmt, idPxl, grossiOmbre );
            var idblur = charIDToTypeID( "blur" );
            var idPxl = charIDToTypeID( "#Pxl" );
// La distance de l'ombre dépend de la largeur de l'image
desc256.putUnitDouble( idblur, idPxl, distanceOmbre );
            var idNose = charIDToTypeID( "Nose" );
            var idPrc = charIDToTypeID( "#Prc" );
            desc256.putUnitDouble( idNose, idPrc, 0.000000 );
            var idAntA = charIDToTypeID( "AntA" );
            desc256.putBoolean( idAntA, false );
            var idTrnS = charIDToTypeID( "TrnS" );
                var desc258 = new ActionDescriptor();
                var idNm = charIDToTypeID( "Nm  " );
                desc258.putString( idNm, "Linéaire" );
            var idShpC = charIDToTypeID( "ShpC" );
            desc256.putObject( idTrnS, idShpC, desc258 );
            var idlayerConceals = stringIDToTypeID( "layerConceals" );
            desc256.putBoolean( idlayerConceals, true );
        var idDrSh = charIDToTypeID( "DrSh" );
        desc255.putObject( idDrSh, idDrSh, desc256 );
    var idLefx = charIDToTypeID( "Lefx" );
    desc254.putObject( idT, idLefx, desc255 );
executeAction( idsetd, desc254, DialogModes.NO );
}

Photos: 137
Dormeur74

Membre VIP
Membre VIP

Messages: 1021

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Boitier 1: - Nikon D4s

Boitier 2: - Nikon F

Boitier 3: - Nikon F2

Boitier 4: - Nikon F3

Boitier 5: - Nikon F6

Objectif 1: - Nikkor 24 f/2.8 D

Objectif 2: - PC-Nikkor 35mm f/2,8

Objectif 3: - Micro-Nikkor 105mm f/2.8G AF-S VR IF-ED

Objectif 4: - Nikkor 70-210 f4 AF

Objectif 5: - Nikkor 200-400mm f/4G ED-IF AF-S Vr

Objectif 6: - Nikkor 24-120mm f/4G ED AF-S VR

Objectif 7: - Micro Nikkor AI-S 55mm f/3.5 Micro

Objectif 8: - Nikkor 70-200mm f/2.8G ED AF-S VRII

Objectif 9: - Nikkor 24-70mm f/2.8G ED AF-S

Objectif 10: - Nikkor 55mm f/1.2 AI-S

Flash 1: - Nikon SB-900

Flash 2: - Nikon SB-800

Re: Scripts et copyright

par omarsteau » Lundi 28 Mars 2016 7:49

Bon, ben encore merci , tout fonctionne . C'est génial. j'aurais bien été incapable de faire ça .
Avec quel outil informatique a tu édité ce code ?
Pense à me donner l'adresse de ton site, si tu en as un.
Olivier

omarsteau

..........
..........

Messages: 9

Inscription: 22 Mar 2016

Objectif 1:

par Dormeur74 » Mardi 29 Mars 2016 6:14

Bonjour,
Personnellement, je n'utilise que le bloc-notes (Notepad++) ; certains utilisent le logiciel fourni avec Photoshop (ExtendScript Toolkit), mais c'est une histoire de goût. En Javascript pour PS, il n'existe pas encore, à ma connaissance, de système wysiwyg qui permet de générer directement un code, comme pour Dreamweaver et le HTML.

Si tu veux aller sur mon site, tu cliques sur Dormeur74 et tu verras en bas à gauche un lien avec son URL juste à côté du MP (message privé).
@+

Photos: 137
Dormeur74

Membre VIP
Membre VIP

Messages: 1021

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Boitier 1: - Nikon D4s

Boitier 2: - Nikon F

Boitier 3: - Nikon F2

Boitier 4: - Nikon F3

Boitier 5: - Nikon F6

Objectif 1: - Nikkor 24 f/2.8 D

Objectif 2: - PC-Nikkor 35mm f/2,8

Objectif 3: - Micro-Nikkor 105mm f/2.8G AF-S VR IF-ED

Objectif 4: - Nikkor 70-210 f4 AF

Objectif 5: - Nikkor 200-400mm f/4G ED-IF AF-S Vr

Objectif 6: - Nikkor 24-120mm f/4G ED AF-S VR

Objectif 7: - Micro Nikkor AI-S 55mm f/3.5 Micro

Objectif 8: - Nikkor 70-200mm f/2.8G ED AF-S VRII

Objectif 9: - Nikkor 24-70mm f/2.8G ED AF-S

Objectif 10: - Nikkor 55mm f/1.2 AI-S

Flash 1: - Nikon SB-900

Flash 2: - Nikon SB-800

Re: Scripts et copyright

par omarsteau » Vendredi 01 Avril 2016 15:35

Merci, j'ai mis ton site sur mes liens ..

Super les gouttes d'eau, mais est ce que avec un SB 800 et un D700 je peux faire la même chose , ou bien faut-il du matériel plus sophistiqué ?

Olivier

omarsteau

..........
..........

Messages: 9

Inscription: 22 Mar 2016

Objectif 1:

par Dormeur74 » Samedi 02 Avril 2016 6:05

Bonjour,
Tu n'as besoin d'aucun "flash créatif" Nikon pour faire des collisions de gouttes d'eau. Personnellement, j'utilise quatre ou cinq vieux flashs à thyristors (pour ne pas trop dépenser d'énergie), le principe étant de déclencher l'ensemble des flashs à leur vitesse la plus rapide, donc en manuel. Même avec un vieux tromblon des années 60, tu peux atteindre 1/40.000e de seconde.
C'est une vitesse rapide suffisante, mais encore beaucoup trop lente pour figer ne serait-ce qu'un plomb à étranglement de 4.5mm à la sortie d'une carabine. Le fautif, c'est le xénon. Pour la photo vraiment ultra-rapide (1/1000.000e de seconde), on remplace le xénon par de l'air, mais pour que l'arc électrique soit possible, il faut un énorme voltage, donc un très gros condo et une alimentation AC. Mèf, toute erreur de manipulation se termine à coup sûr par un complet-veston en sapin.

En fait, le plus coûteux, c'est le boîtier électronique qui permet de déclencher la vanne qui libère les gouttes, puis l'obturateur, de prendre en compte le temps d'inertie du boîtier et l'intervalle entre deux gouttes successives. Mais si tu t'intéresses à l'électronique, je pense que tu peux t'en fabriquer un avec un circuit Arduino. Dernier truc, pour ralentir la collision, on met de la gomme de guar dans l'eau ou on prend un liquide épais comme du lait.



Merci pour le lien.

Photos: 137
Dormeur74

Membre VIP
Membre VIP

Messages: 1021

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Boitier 1: - Nikon D4s

Boitier 2: - Nikon F

Boitier 3: - Nikon F2

Boitier 4: - Nikon F3

Boitier 5: - Nikon F6

Objectif 1: - Nikkor 24 f/2.8 D

Objectif 2: - PC-Nikkor 35mm f/2,8

Objectif 3: - Micro-Nikkor 105mm f/2.8G AF-S VR IF-ED

Objectif 4: - Nikkor 70-210 f4 AF

Objectif 5: - Nikkor 200-400mm f/4G ED-IF AF-S Vr

Objectif 6: - Nikkor 24-120mm f/4G ED AF-S VR

Objectif 7: - Micro Nikkor AI-S 55mm f/3.5 Micro

Objectif 8: - Nikkor 70-200mm f/2.8G ED AF-S VRII

Objectif 9: - Nikkor 24-70mm f/2.8G ED AF-S

Objectif 10: - Nikkor 55mm f/1.2 AI-S

Flash 1: - Nikon SB-900

Flash 2: - Nikon SB-800

par omarsteau » Samedi 02 Avril 2016 8:43

Bon, je pense qu'il faut que l'on se parle vitr fait car cela devient assez technique.
1/40 000 millièmes avec le flash , oui, mais quid de la vitesse de l'obturateur ?
Déclenchement manuel ou dispositif spécifique ?

Si tu le peux, je te propose de m'appeler .

A bientôt peut être .

Olivier

omarsteau

..........
..........

Messages: 9

Inscription: 22 Mar 2016

Objectif 1:

Dernière édition par omarsteau le Dimanche 03 Avril 2016 9:52, édité 1 fois.

par omarsteau » Samedi 02 Avril 2016 8:44

Ah oui, j'ai vu des photos d'avions sur ton site, serais tu pilote privé comme moi ?

Olivier

omarsteau

..........
..........

Messages: 9

Inscription: 22 Mar 2016

Objectif 1:

par Dormeur74 » Samedi 02 Avril 2016 10:15

Je sais voler, mais uniquement avec un pépin sur le dos, comme tous les paras et anciens paras.
Sur mon site tu peux voir des avions, je n'en suis pas pilote pour autant. Tu verras aussi des Ferrari, des Aston Martin et aussi quelques portraits de femmes. Mais je roule avec une Skoda qui tombe régulièrement en panne et n'ai rien de bien féminin dans ma glace quand je me rase.
Modifie vite ta dernière contribution pour retirer ce numéro de téléphone qui ne peut faire que le bonheur des e-robots et des personnes malveillantes. Pour ce genre de choses, je te conseille d'utiliser la messagerie privée.

Pour répondre à ta question, il faut se pencher sur la notion "open flash". Dans les grottes, en argentique, on laissait l'obturateur ouvert pendant des minutes et on arrosait de lumière à la main, et avec un flash, ce que l'on voulait voir sur la pellicule. Ici c'est un peu la même chose, sauf qu'il ne s'agit pas de minutes, mais d'une vitesse de l'ordre de 1/200e sec. Ce qui est très long pour un éclairage proche du 1/40.000e sec.
C'est de l'open flash rapide. Incontournable en photographie numérique, à mon humble avis, pour éviter le bruit électronique (1).

Ton obturateur va rester ouvert en gros pendant 1/250e de seconde et ton capteur (diaphragme complètement fermé pour avoir la meilleure profondeur de champ possible) serait aveugle sans l'aide d'un flash. Si on met un flash plein pot (puissance 1/1), le fromage blanc de Haute-Savoie (chez moi) est assuré. Mais si on met le flash en manuel au 1/128e de sa puissance, les choses s'arrangent. Les gouttes sont figées, mais on manque de lumière. Alors la solution consiste à utiliser des esclaves. Le maître, qui peut être déporté avec une solution filaire du type AS-15 chez Nikon, déclenche un certain nombre d'esclaves mis manuellement au minimum de leur puissance.

(1) Il n'y a pas qu'une seule source de bruit électronique;

Photos: 137
Dormeur74

Membre VIP
Membre VIP

Messages: 1021

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Boitier 1: - Nikon D4s

Boitier 2: - Nikon F

Boitier 3: - Nikon F2

Boitier 4: - Nikon F3

Boitier 5: - Nikon F6

Objectif 1: - Nikkor 24 f/2.8 D

Objectif 2: - PC-Nikkor 35mm f/2,8

Objectif 3: - Micro-Nikkor 105mm f/2.8G AF-S VR IF-ED

Objectif 4: - Nikkor 70-210 f4 AF

Objectif 5: - Nikkor 200-400mm f/4G ED-IF AF-S Vr

Objectif 6: - Nikkor 24-120mm f/4G ED AF-S VR

Objectif 7: - Micro Nikkor AI-S 55mm f/3.5 Micro

Objectif 8: - Nikkor 70-200mm f/2.8G ED AF-S VRII

Objectif 9: - Nikkor 24-70mm f/2.8G ED AF-S

Objectif 10: - Nikkor 55mm f/1.2 AI-S

Flash 1: - Nikon SB-900

Flash 2: - Nikon SB-800

Poster une réponse
Suivante

Poster une réponse

Citer la selection
 

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron