Partager l'article ! Placement d'Images sur des Rectangles: /************************************************************************   ...
/************************************************************************
CADRES D'IMAGES
Balayage des images d'un repertoire.
Chargement des images dans des calques de meme nom + "_".
Chaque image est placee et redimensionnee selon un "cadre" de meme nom.
Un cadre est definit par un calque contenant un rectangle sur lequel sera
placee et redimensionnee l'image.
Les images sans cadre sont ignorees.
************************************************************************
18/11/2010 Habaki V1r01 : Creation
************************************************************************/
var jpegOptions = new JPEGSaveOptions();
var DocMain; // Document principal
var ImgNum = 0; // Numero d'image
app.preferences.rulerUnits = Units.CM;
/*----------------------------------------------------------------------*
Parametres
*----------------------------------------------------------------------*/
jpegOptions.quality = 12; // Qualite jpeg
var TargetName = "tirage1"; // Nom Fichier resultat
/*----------------------------------------------------------------------*
Traite
un fichier
*----------------------------------------------------------------------*/
function FileProcess(
file
)
{
var Doc;
var Layer; // calque image
var LayerC; // calque cadre
var Coord, CoordC;
var V, H, VC, HC, PosX, PosY;
var RatioH, RatioV;
var FName;
// Selection fichiers seulement
if (file instanceof Folder) return(false);
// Calque de cadre
try {
FName = file.name.slice(0, -4);
LayerC = DocMain.artLayers.getByName(FName);
} catch(ex) {
return(false);
}
// Copie l'image dans le clipboard
Doc = open(file);
Sel = Doc.selection;
Sel.selectAll();
Sel.copy();
Doc.close(SaveOptions.DONOTSAVECHANGES);
// Coller l'image dans le doc final
Layer = DocMain.paste();
Layer.name = FName + "_";
// Lecture dimensions
// Coord: TopLeftX,TopLeftY,BottomRightX, BottomRightY
Coord = Layer.bounds;
H = Coord[2] - Coord[0]; // Largeur
V = Coord[3] - Coord[1]; // Hauteur
CoordC = LayerC.bounds;
HC = CoordC[2] - CoordC[0]; // Largeur
VC = CoordC[3] - CoordC[1]; // Hauteur
RatioH = 100.0 * HC / H;
RatioV = 100.0 * VC / V;
Layer.resize(RatioH, RatioV, AnchorPosition.TOPLEFT);
// Deplacement
PosX = CoordC[0] - Coord[0];
PosY = CoordC[1] - Coord[1];
Layer.translate(PosX, PosY);
return(true);
}
/*----------------------------------------------------------------------*
Main
*----------------------------------------------------------------------*/
try{
var MainDirPath = prompt("Repertoire a traiter ?", "/c/images/docu/argent");
var MainDir = File(MainDirPath);
// Document resultat
// Units: cm bpi
DocMain = app.activeDocument;
// Scan all files in MainDir
MainDir.getFiles(FileProcess);
// Sauvegarde
/*
DocMain.saveAs(new File(MainDirPath + "/"
+
"Tirage"
+ "/" +
TargetName + ".jpg"),
jpegOptions, true);
*/
} catch(ex) {
alert(ex.message)
}
alert("Fini");