http://www.scriptopedia.org/
------------------------------- (. jsx)
Exemple pour faire un pavage d'image ou une mosaique d'image ou une matrice d'image ou une grillle d'img.
Un script de placement d'images sur un document :
Il faut juste régler les variables de la section "Paramètres".
L'image résultat est créée dans le répertoire qui contient le répertoire des images à rassembler.
Code:
/************************************************************************ PAVAGE D'UNE IMAGE ************************************************************************ 09/06/2012 Habaki V1r02 : Adaptation 13/02/2012 Habaki V1r01 : Creation ************************************************************************/ var jpegOptions = new JPEGSaveOptions(); /*----------------------------------------------------------------------* Parametres *----------------------------------------------------------------------*/ jpegOptions.quality = 12; // Qualite jpeg var DocPrefix = "pavage"; // Prefixe Fichier resultat var ImgNbH = 5; // Nb d'images horizontalement var ImgNbV = 10; // Nb d'images verticalement var Resolution = 72; // Resolution (Pixels/Inch) var DocH = 2835; // Taille horizontale doc resultat (pixels) var DocV = 2835; // Taille verticale doc resultat (pixels) var DocMode = NewDocumentMode.RGB; var CfgMode = 0; // Configuration (OU de flags): // 1: Garder les claques, sinon les fusionner // 2: Tourner les images paysages /*----------------------------------------------------------------------* Globals *----------------------------------------------------------------------*/ var DocMain; // Document principal var MailleH; // Maille horizontale var MailleV; // Maille verticale var ImgNum = 0; // Numero d'image /*----------------------------------------------------------------------* Traite un fichier *----------------------------------------------------------------------*/ function FileProcess( file ) { var Doc; var Sel; var Layer; // calque var Coord; var V, H, PosX, PosY; var RatioH, RatioV; // Selection fichiers seulement if (file instanceof Folder) return(false); // Copie l'image dans le clipboard Doc = open(file); Sel = Doc.selection; Sel.selectAll(); Sel.copy(); Sel.deselect(); Doc.close(SaveOptions.DONOTSAVECHANGES); // Coller l'image dans le doc final Layer = DocMain.paste(); Layer.name = "Img" + ++ImgNum; // Lecture dimensions // Coord: TopLeftX,TopLeftY,BottomRightX, BottomRightY Coord = Layer.bounds; H = Coord[2] - Coord[0]; // Largeur V = Coord[3] - Coord[1]; // Hauteur if ((CfgMode & 2) && H > V) { // Image paysage => Rotation -90 Layer.rotate(-90, AnchorPosition.MIDDLECENTER); Coord = Layer.bounds; H = Coord[2] - Coord[0]; // Largeur V = Coord[3] - Coord[1]; // Hauteur } // Position destination PosX = MailleH * (((ImgNum-1) % ImgNbH)); PosY = MailleV * (Math.floor((ImgNum-1) / ImgNbH)); // Dimensionnement dans la maille RatioH = MailleH*100 / H; RatioV = MailleV*100 / V; RatioH = Math.min(RatioH, RatioV); if (RatioH != 100) { Layer.resize(RatioH, RatioH, AnchorPosition.TOPLEFT); Coord = Layer.bounds; } //alert("PosX="+PosX+ ", PosY="+PosY+", X="+Coord[0]+", Y=" + Coord[1]); // Deplacement PosX -= Math.floor(Coord[0]); PosY -= Math.floor(Coord[1]); Layer.translate(PosX, PosY); if ((CfgMode & 1)==0) Layer.merge(); // Fusionner return(true); } /*----------------------------------------------------------------------* Main *----------------------------------------------------------------------*/ var RulerUnits = preferences.rulerUnits; preferences.rulerUnits = Units.PIXELS; try{ var MainPath = prompt("Repertoire a traiter ?", "/c/images/photoshop/scripts/grille/imgs"); var MainDir = File(MainPath); var DocName = DocPrefix + "_" + MainDir.name; // Creation document resultat MailleH = DocH / ImgNbH; MailleV = DocV / ImgNbV; // Units: bpi DocMain = app.documents.add(DocH, DocV, Resolution, DocName ,DocMode ,DocumentFill.WHITE ); // Scan all files in MainDir MainDir.getFiles(FileProcess); // Sauvegarde DocMain.saveAs(new File(MainDir.path + "/" + "/" + DocName + ".jpg"), jpegOptions, true); } catch(ex) { alert(ex.message) } preferences.rulerUnits = RulerUnits; alert("Fini");
------------------------------------------
http://habaki.over-blog.com/pages/Placement_dImages_sur_une_Grille--7866603.html
script plus completCe script permet de placer un ensemble d'images selon une grille sur un fond d'une taille donnée.
/************************************************************************
PAVAGE des IMAGES d'un REPERTOIRE sur une GRILLE
************************************************************************
Les images JPG d'un repertoire sont disposes en grille sur un document
qui est sauvegarde en JPG.
************************************************************************
10/06/2012 Habaki V1r03 : Ajout des marges, gaps et qq configs
09/06/2012 Habaki V1r02 : Adaptation
13/02/2012 Habaki V1r01 : Creation
************************************************************************/
var jpegOptions = new JPEGSaveOptions();
/*----------------------------------------------------------------------*
Parametres
*----------------------------------------------------------------------*/
jpegOptions.quality = 12; // Qualite jpeg
var DocPrefix = "pavage"; // Prefixe Fichier resultat
var ImgNbH = 5; // Nb d'images horizontalement
var ImgNbV = 3; // Nb d'images verticalement
var Resolution = 72; // Resolution (Pixels/Inch)
var DocH = 1000; // Taille horizontale doc resultat (pixels)
var DocV = DocH*3/5; // Taille verticale doc resultat (pixels)
var DocMode = NewDocumentMode.RGB;
//var DocColor = DocumentFill.WHITE;
var DocColor = DocumentFill.BACKGROUNDCOLOR;
var MarginH = 50; // Marge horizontale (pixels)
var MarginV = 50; // Marge verticale (pixels)
var GapH = 10; // Separation horizontale entre images (pixels)
var GapV = 20; // Separation verticale entre images (pixels)
var CfgMode = 0; // Configuration (OU de flags):
// 1: Garder les calques, sinon les fusionner
// 2: Tourner les images paysages
// 4: Centrer les images dans la maille
/*----------------------------------------------------------------------*
Globals
*----------------------------------------------------------------------*/
var DocMain; // Document principal
var MailleH; // Maille horizontale
var MailleV; // Maille verticale
var ImgNum = 0; // Numero d'image
/*----------------------------------------------------------------------*
Traite un fichier
*----------------------------------------------------------------------*/
function FileProcess(
file
)
{
var Doc;
var Sel;
var Layer; // calque
var Coord;
var V, H, PosX, PosY;
var RatioH, RatioV;
var St;
// Selection fichiers seulement
if (file instanceof Folder) return(false);
St = file.name.toLowerCase();
// Selection .jpg seulement
if (St.lastIndexOf(".jpg") != St.length-4) return(false);
// Feuille remplie
if (ImgNum >= ImgNbH * ImgNbV) return(false);
// Copie l'image dans le clipboard
Doc = open(file);
Sel = Doc.selection;
Sel.selectAll();
Sel.copy();
Sel.deselect();
Doc.close(SaveOptions.DONOTSAVECHANGES);
// Coller l'image dans le doc final
Layer = DocMain.paste();
Layer.name = "Img" + ++ImgNum;
// Lecture dimensions
// Coord: TopLeftX,TopLeftY,BottomRightX, BottomRightY
Coord = Layer.bounds;
H = Coord[2] - Coord[0]; // Largeur
V = Coord[3] - Coord[1]; // Hauteur
if ((CfgMode & 2) && H > V) {
// Image paysage => Rotation -90
Layer.rotate(-90, AnchorPosition.MIDDLECENTER);
Coord = Layer.bounds;
H = Coord[2] - Coord[0]; // Largeur
V = Coord[3] - Coord[1]; // Hauteur
}
// Position destination
PosX = MarginH + (MailleH + GapH)* (((ImgNum-1) % ImgNbH));
PosY = MarginV + (MailleV + GapV)* (Math.floor((ImgNum-1) / ImgNbH));
// Dimensionnement dans la maille
RatioH = MailleH*100 / H;
RatioV = MailleV*100 / V;
RatioH = Math.min(RatioH, RatioV);
if (RatioH != 100) {
Layer.resize(RatioH, RatioH, AnchorPosition.TOPLEFT);
Coord = Layer.bounds;
H = Coord[2] - Coord[0]; // Largeur
V = Coord[3] - Coord[1]; // Hauteur
}
if (CfgMode & 4) {
// Centrage
PosX += (MailleH-Math.floor(H))/2;
PosY += (MailleV-Math.floor(V))/2;
}
//alert("PosX="+PosX+ ", PosY="+PosY+", X="+Coord[0]+", Y=" + Coord[1]);
// Deplacement
PosX -= Math.floor(Coord[0]);
PosY -= Math.floor(Coord[1]);
Layer.translate(PosX, PosY);
if ((CfgMode & 1)==0) Layer.merge(); // Fusionner
return(true);
}
/*----------------------------------------------------------------------*
Main
*----------------------------------------------------------------------*/
var RulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
try{
var MainPath;
var MainDir;
var DocName;
var BL;
var DefaultDir;
DefaultDir = (new File($.fileName)).path;
MainDir = Folder(DefaultDir).selectDlg("Repertoire a traiter ?");
DocName = DocPrefix + "_" + MainDir.name;
// Cadre pour chaque image
MailleH = (DocH - 2*MarginH - (ImgNbH-1)*GapH) / ImgNbH;
MailleV = (DocV - 2*MarginV - (ImgNbV-1)*GapV) / ImgNbV;
// Units: bpi
// Creation document resultat
DocMain = app.documents.add(DocH, DocV, Resolution, DocName
,DocMode
,DocColor
);
DocMain.activeLayer.name = "Fond";
// Scan all files in MainDir
MainDir.getFiles(FileProcess);
// Sauvegarde
DocMain.saveAs(new File(MainDir.path + "/"
+ "/" + DocName + ".jpg"),
jpegOptions, true);
} catch(ex) {
alert(ex.message)
}
preferences.rulerUnits = RulerUnits;
//alert("Fini");
Les images sont redimensionnées et éventuellement retournées.
Il est possible de règler les marges, le centrage et les espaces entre images.
Toutes les valeurs modifiables se trouvent rassemblées dans la section "Parametres", mais ce script sert aussi de base pour d'autres scripts nécessitant des placements d'images plus spécifiques.
---------------
Voici comment charger les scripts dans la palette Photoshop®.
Etape 1 :
Dans un premier temps, vous devez afficher la palette des scripts: cliquez sur
fenêtre puis sur "afficher scripts".
Etape 2 :
Allez dans la palette des scripts et cliquez sur la flèche en noir en
haut à droite, un menu apparait.Cliquez sur "charger les scripts".
Etape 3 :
Sélectionnez un script que vous aurez préalablement télécharger
et mis dans un dossier. Cliquez sur Ok.
c-a-d: aller rechercher le fichier .atn que vous venez de télécharger, puis valider. Magique : le groupe de scripts apparaît dans la palette
Etape 4 :
Votre script apparait dans la palette, sélectionnez-le et cliquez sur
le bouton "lecture" pour qu'il s'exécute.
---------------
autre méthode:
enregistrez les fichiers dans le répertoire désiré (je conseille le chemin d’accès des actions Photoshop, soit
C:\Program Files\Adobe\Adobe Photoshop CS2\Presets\Photoshop Actions
! -------------
POUR CREER UN SCRIPT ATN appelant un script.jsx
http://a.themes.free.fr/SCRIPTSjsx/TutoScriptAtnJsx.html
Le fichier javascript est un fichier texte avec l extension .JSX - placez le dans "C:\Program Files\Adobe\Adobe Photoshop CS2\Paramètres prédéfinis\Scripts" .
-------------
C'est quoi un script .atn sur Photoshop ?
Un script est un ensemble d'actions pré-enregistrées qui s'exécutent automatiquement.Pour ouvrir la console, Fenêtre => Scripts ou Alt + F9
-----------
http://www.siteduzero.com/tutoriel-3-36731-les-scripts-sous-photoshop.html
-------
ref: http://forum.photoshop-school.org/ftopic10309.php
---------------------------------------------------------
autres:
plug-in
http://www.adobe.com/support/downloads/product.jsp?product=39&platform=Macintosh
--------
http://smashinghub.com/25-best-photoshop-cs6-tutorials.htm