Overblog Suivre ce blog
Editer la page Administration Créer mon blog
/ / /

 

/************************************************************************
                 ZOOM
                Balayage des images d'un repertoire
                Zoom l'image selon le numero de fichier
                Le numero est entre () dans le nom de fichier
                Sauvegarde sous le meme nom dans un autre repertoire
                La dimension de l'image ne change pas
 ************************************************************************
 06/05/2014 Habaki V1r01 : Creation
 ************************************************************************/
var jpegOptions  = new JPEGSaveOptions();
app.preferences.rulerUnits = Units.PIXELS;
/*----------------------------------------------------------------------*
   Parametres
 *----------------------------------------------------------------------*/
jpegOptions.quality = 12;   // Qualite jpeg
var DirIn  = "";       // Repertoire a traiter
var DirOut  = "";      // Repertoire resultat
var RatioStep  = 0.3;  // Unité d'agrandissement en %
/*----------------------------------------------------------------------*
                        Traite un fichier
 *----------------------------------------------------------------------*/
function FileProcess(
        file
        )
{
  var Doc;
  var W, H;
  var Ratio = 1.0;
  var FPathOut;
  var Num;
  var Name;
  var BorderH, BorderW;
 
  // Selection fichiers seulement
  if (file instanceof Folder) return(false);
 
  // Extract numero de fichier
  // name : "---(Nb)---.jpg)
  Name = file.name;
 
  Num = Name.indexOf("(");
  if (Num < 0) return(false);
  Num = parseInt(Name.slice(Num+1), 10);
  if (Num <= 0) return(false);
 
  FPathOut = DirOut + "/" + Name;
  Ratio = 1.0 + (RatioStep * (Num-1)) / 100;
 
  Doc = open(file);
 
  H = Doc.height;
  W = Doc.width;
 
  Doc.resizeImage(W*Ratio, H*Ratio, Doc.resolution);
  BorderH = (H*Ratio - H)/2
  BorderW = (W*Ratio - W)/2;
  Doc.crop(new Array (BorderW,   // left
                      BorderH,   // top
                      BorderW + W,  // right
                      BorderH + H  // bottom
                      ));
 
  Doc.saveAs(new File(FPathOut), jpegOptions, true);
  Doc.close(SaveOptions.DONOTSAVECHANGES);
  return(true);
}
/*----------------------------------------------------------------------*
   Main
 *----------------------------------------------------------------------*/
try{
 
  DirIn  = prompt("Repertoire a traiter ?",
                  "/c/images/photoshop/scripts/zoom/imgs");
  DirOut = prompt("Repertoire destination ?",
                  "/c/images/photoshop/scripts/zoom/imgs/out");
 
  // Scan all files in MainDir
  (new Folder(DirIn)).getFiles(FileProcess);
 
} catch(ex) {
  alert(ex.message)
}
alert("Fini");

Partager cette page

Repost 0
Published by