Fonctions pour créer une Animation

Ce script ne fait rien par lui-meme: il contient des fonctions nécessaires à d'autres scripts pour construire automatiquement une animation à partir de calques déja présents.
Le script doit etre copié dans le fichier ANIM.JSX.


/************************************************************************
   Photoshop
                        Animation functions
 ************************************************************************
 The animation window must be open.
 One image is selected : the current
 ************************************************************************
 23/08/09 Habaki V1r01 : Create from Listener logs
 ************************************************************************/
/*----------------------------------------------------------------------*
                        Select Image
 *----------------------------------------------------------------------*/
function animation_ImageSelect(
        ImgIdx   // Image index 1..N
        )
{
  var idslct = charIDToTypeID( "slct" );
  var desc16 = new ActionDescriptor();
  var idnull = charIDToTypeID( "null" );
  var ref11 = new ActionReference();
  var idanimationFrameClass = stringIDToTypeID( "animationFrameClass" );
  ref11.putIndex( idanimationFrameClass, ImgIdx);
  desc16.putReference( idnull, ref11 );
  executeAction( idslct, desc16, DialogModes.NO );
}
/*----------------------------------------------------------------------*
                        Extend Selection of images
 *----------------------------------------------------------------------*/
function animation_ImageSelectExt(
        ImgIdx   // Image index 1..N
        )
{
    var idanimationFrameExtendSelection = stringIDToTypeID( "animationFrameExtendSelection" );
    var desc20 = new ActionDescriptor();
    var idanimationToFrame = stringIDToTypeID( "animationToFrame" );
    desc20.putInteger( idanimationToFrame, ImgIdx-1);
    var idanimationFramesContiguous = stringIDToTypeID( "animationFramesContiguous" );
    desc20.putBoolean( idanimationFramesContiguous, false );
    executeAction( idanimationFrameExtendSelection, desc20, DialogModes.NO );
}
/*----------------------------------------------------------------------*
                        New image
 Insert image after the given image
 The new image becomes the current
 *----------------------------------------------------------------------*/
function animation_ImageNew(
        ImgIdx // Previous Image Index (1..N, 0 for current)
        )
{
  if (ImgIdx) animation_ImageSelect(ImgIdx);
 
  var idDplc = charIDToTypeID( "Dplc" );
  var desc12 = new ActionDescriptor();
  var idnull = charIDToTypeID( "null" );
  var ref8 = new ActionReference();
  var idanimationFrameClass = stringIDToTypeID( "animationFrameClass" );
  var idOrdn = charIDToTypeID( "Ordn" );
  var idTrgt = charIDToTypeID( "Trgt" );
  ref8.putEnumerated( idanimationFrameClass, idOrdn, idTrgt );
  desc12.putReference( idnull, ref8 );
  executeAction( idDplc, desc12, DialogModes.NO );
}
/*----------------------------------------------------------------------*
   Set time of image
 *----------------------------------------------------------------------*/
function animation_ImageTimeSet(
        ImgIdx, // Image Index (1..N, 0 for current)
 Time // float Time in s
 )
{
  if (ImgIdx) animation_ImageSelect(ImgIdx);
 
  var idsetd = charIDToTypeID( "setd" );
  var desc14 = new ActionDescriptor();
  var idnull = charIDToTypeID( "null" );
  var ref10 = new ActionReference();
  var idanimationFrameClass = stringIDToTypeID( "animationFrameClass" );
  var idOrdn = charIDToTypeID( "Ordn" );
  var idTrgt = charIDToTypeID( "Trgt" );
  ref10.putEnumerated( idanimationFrameClass, idOrdn, idTrgt );
  desc14.putReference( idnull, ref10 );
  var idT = charIDToTypeID( "T   " );
  var desc15 = new ActionDescriptor();
  var idanimationFrameDelay = stringIDToTypeID( "animationFrameDelay" );
  desc15.putDouble( idanimationFrameDelay, Time );
  var idanimationFrameClass = stringIDToTypeID( "animationFrameClass" );
  desc14.putObject( idT, idanimationFrameClass, desc15 );
  executeAction( idsetd, desc14, DialogModes.NO );
}
/*----------------------------------------------------------------------*
   Delete image
 The new current image becomes the next image
 *----------------------------------------------------------------------*/
function animation_ImageDel(
        ImgIdx // Image Index (1..N, 0 for current)
 )
{
  if (ImgIdx) animation_ImageSelect(ImgIdx);
 
  var idDlt = charIDToTypeID( "Dlt " );
  var desc23 = new ActionDescriptor();
  var idnull = charIDToTypeID( "null" );
  var ref16 = new ActionReference();
  var idanimationFrameClass = stringIDToTypeID( "animationFrameClass" );
  var idOrdn = charIDToTypeID( "Ordn" );
  var idTrgt = charIDToTypeID( "Trgt" );
  ref16.putEnumerated( idanimationFrameClass, idOrdn, idTrgt );
  desc23.putReference( idnull, ref16 );
  executeAction( idDlt, desc23, DialogModes.NO );
}
/*----------------------------------------------------------------------*
   Show/Hide layer into image
 *----------------------------------------------------------------------*/
function animation_LayerShow(
        ImgIdx,  // Image Index (1..N, 0 for current)
        LayerName,  // Layer name
        ShowMode // true:Show, false: Hide
 )
{
  if (ImgIdx) animation_ImageSelect(ImgIdx);
 
  var desc = new ActionDescriptor();
  var idnull = charIDToTypeID( "null" );
  var Alist = new ActionList();
  var Aref = new ActionReference();
  var idLyr = charIDToTypeID( "Lyr " );
  var idOp;
  if (ShowMode) {
    idOp = charIDToTypeID( "Shw " );
  } else {
    idOp = charIDToTypeID( "Hd  " );
  }
  Aref.putName( idLyr, LayerName);
  Alist.putReference( Aref );
  desc.putList( idnull, Alist );
  executeAction( idOp, desc, DialogModes.NO );
}

// Save animation
/*----------------------------------------------------------------------*
   Save animation into file
 Options not deciphered yet...
 *----------------------------------------------------------------------*/
function animation_SaveAs(
        FilePath  // full path name with extention (.gif)
 )
{
  var idExpr = charIDToTypeID( "Expr" );
  var desc50 = new ActionDescriptor();
  var idUsng = charIDToTypeID( "Usng" );
  var desc51 = new ActionDescriptor();
  var idOp = charIDToTypeID( "Op  " );
  var idSWOp = charIDToTypeID( "SWOp" );
  var idOpSa = charIDToTypeID( "OpSa" );
  desc51.putEnumerated( idOp, idSWOp, idOpSa );
  var idDIDr = charIDToTypeID( "DIDr" );
  desc51.putBoolean( idDIDr, false );
  var idIn = charIDToTypeID( "In  " );
  desc51.putPath( idIn, new File( FilePath ) );
 
  var idFmt = charIDToTypeID( "Fmt " );
  var idIRFm = charIDToTypeID( "IRFm" );
  var idGIFf = charIDToTypeID( "GIFf" );
  desc51.putEnumerated( idFmt, idIRFm, idGIFf );
  var idIntr = charIDToTypeID( "Intr" );
  desc51.putBoolean( idIntr, false );
  var idRedA = charIDToTypeID( "RedA" );
  var idIRRd = charIDToTypeID( "IRRd" );
  var idSltv = charIDToTypeID( "Sltv" );
  desc51.putEnumerated( idRedA, idIRRd, idSltv );
  var idRChT = charIDToTypeID( "RChT" );
  desc51.putBoolean( idRChT, false );
  var idRChV = charIDToTypeID( "RChV" );
  desc51.putBoolean( idRChV, false );
  var idAuRd = charIDToTypeID( "AuRd" );
  desc51.putBoolean( idAuRd, false );
  var idNCol = charIDToTypeID( "NCol" );
  desc51.putInteger( idNCol, 256 );
  var idDthr = charIDToTypeID( "Dthr" );
  var idIRDt = charIDToTypeID( "IRDt" );
  var idDfsn = charIDToTypeID( "Dfsn" );
  desc51.putEnumerated( idDthr, idIRDt, idDfsn );
  var idDthA = charIDToTypeID( "DthA" );
  desc51.putInteger( idDthA, 100 );
  var idDChS = charIDToTypeID( "DChS" );
  desc51.putInteger( idDChS, 0 );
  var idDCUI = charIDToTypeID( "DCUI" );
  desc51.putInteger( idDCUI, 0 );
  var idDChT = charIDToTypeID( "DChT" );
  desc51.putBoolean( idDChT, false );
  var idDChV = charIDToTypeID( "DChV" );
  desc51.putBoolean( idDChV, false );
  var idWebS = charIDToTypeID( "WebS" );
  desc51.putInteger( idWebS, 0 );
  var idTDth = charIDToTypeID( "TDth" );
  var idIRDt = charIDToTypeID( "IRDt" );
  var idNone = charIDToTypeID( "None" );
  desc51.putEnumerated( idTDth, idIRDt, idNone );
  var idTDtA = charIDToTypeID( "TDtA" );
  desc51.putInteger( idTDtA, 100 );
  var idLoss = charIDToTypeID( "Loss" );
  desc51.putInteger( idLoss, 0 );
  var idLChS = charIDToTypeID( "LChS" );
  desc51.putInteger( idLChS, 0 );
  var idLCUI = charIDToTypeID( "LCUI" );
  desc51.putInteger( idLCUI, 100 );
  var idLChT = charIDToTypeID( "LChT" );
  desc51.putBoolean( idLChT, false );
  var idLChV = charIDToTypeID( "LChV" );
  desc51.putBoolean( idLChV, false );
  var idTrns = charIDToTypeID( "Trns" );
  desc51.putBoolean( idTrns, true );
  var idMtt = charIDToTypeID( "Mtt " );
  desc51.putBoolean( idMtt, true );
  var idMttR = charIDToTypeID( "MttR" );
  desc51.putInteger( idMttR, 255 );
  var idMttG = charIDToTypeID( "MttG" );
  desc51.putInteger( idMttG, 255 );
  var idMttB = charIDToTypeID( "MttB" );
  desc51.putInteger( idMttB, 255 );
  var idSHTM = charIDToTypeID( "SHTM" );
  desc51.putBoolean( idSHTM, false );
  var idSImg = charIDToTypeID( "SImg" );
  desc51.putBoolean( idSImg, true );
  var idSWsl = charIDToTypeID( "SWsl" );
  var idSTsl = charIDToTypeID( "STsl" );
  var idSLAl = charIDToTypeID( "SLAl" );
  desc51.putEnumerated( idSWsl, idSTsl, idSLAl );
  var idSWch = charIDToTypeID( "SWch" );
  var idSTch = charIDToTypeID( "STch" );
  var idCHsR = charIDToTypeID( "CHsR" );
  desc51.putEnumerated( idSWch, idSTch, idCHsR );
  var idSWmd = charIDToTypeID( "SWmd" );
  var idSTmd = charIDToTypeID( "STmd" );
  var idMDCC = charIDToTypeID( "MDCC" );
  desc51.putEnumerated( idSWmd, idSTmd, idMDCC );
  var idohXH = charIDToTypeID( "ohXH" );
  desc51.putBoolean( idohXH, false );
  var idohIC = charIDToTypeID( "ohIC" );
  desc51.putBoolean( idohIC, true );
  var idohAA = charIDToTypeID( "ohAA" );
  desc51.putBoolean( idohAA, true );
  var idohQA = charIDToTypeID( "ohQA" );
  desc51.putBoolean( idohQA, true );
  var idohCA = charIDToTypeID( "ohCA" );
  desc51.putBoolean( idohCA, false );
  var idohIZ = charIDToTypeID( "ohIZ" );
  desc51.putBoolean( idohIZ, true );
  var idohTC = charIDToTypeID( "ohTC" );
  var idSToc = charIDToTypeID( "SToc" );
  var idOCzerothree = charIDToTypeID( "OC03" );
  desc51.putEnumerated( idohTC, idSToc, idOCzerothree );
  var idohAC = charIDToTypeID( "ohAC" );
  var idSToc = charIDToTypeID( "SToc" );
  var idOCzerothree = charIDToTypeID( "OC03" );
  desc51.putEnumerated( idohAC, idSToc, idOCzerothree );
  var idohIn = charIDToTypeID( "ohIn" );
  desc51.putInteger( idohIn, -1 );
  var idohLE = charIDToTypeID( "ohLE" );
  var idSTle = charIDToTypeID( "STle" );
  var idLEzerothree = charIDToTypeID( "LE03" );
  desc51.putEnumerated( idohLE, idSTle, idLEzerothree );
  var idohEn = charIDToTypeID( "ohEn" );
  var idSTen = charIDToTypeID( "STen" );
  var idENzerozero = charIDToTypeID( "EN00" );
  desc51.putEnumerated( idohEn, idSTen, idENzerozero );
  var idolCS = charIDToTypeID( "olCS" );
  desc51.putBoolean( idolCS, false );
  var idolEC = charIDToTypeID( "olEC" );
  var idSTst = charIDToTypeID( "STst" );
  var idSTzerozero = charIDToTypeID( "ST00" );
  desc51.putEnumerated( idolEC, idSTst, idSTzerozero );
  var idolWH = charIDToTypeID( "olWH" );
  var idSTwh = charIDToTypeID( "STwh" );
  var idWHzeroone = charIDToTypeID( "WH01" );
  desc51.putEnumerated( idolWH, idSTwh, idWHzeroone );
  var idolSV = charIDToTypeID( "olSV" );
  var idSTsp = charIDToTypeID( "STsp" );
  var idSPzerofour = charIDToTypeID( "SP04" );
  desc51.putEnumerated( idolSV, idSTsp, idSPzerofour );
  var idolSH = charIDToTypeID( "olSH" );
  var idSTsp = charIDToTypeID( "STsp" );
  var idSPzerofour = charIDToTypeID( "SP04" );
  desc51.putEnumerated( idolSH, idSTsp, idSPzerofour );
  var idolNC = charIDToTypeID( "olNC" );
 
  var list16 = new ActionList();
 
  var desc52 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCzerozero = charIDToTypeID( "NC00" );
  desc52.putEnumerated( idncTp, idSTnc, idNCzerozero );
  var idSCnc = charIDToTypeID( "SCnc" );
  list16.putObject( idSCnc, desc52 );
 
  var desc53 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNConenine = charIDToTypeID( "NC19" );
  desc53.putEnumerated( idncTp, idSTnc, idNConenine );
  var idSCnc = charIDToTypeID( "SCnc" );
  list16.putObject( idSCnc, desc53 );
 
  var desc54 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwoeight = charIDToTypeID( "NC28" );
  desc54.putEnumerated( idncTp, idSTnc, idNCtwoeight );
  var idSCnc = charIDToTypeID( "SCnc" );
  list16.putObject( idSCnc, desc54 );
 
  var desc55 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwofour = charIDToTypeID( "NC24" );
  desc55.putEnumerated( idncTp, idSTnc, idNCtwofour );
  var idSCnc = charIDToTypeID( "SCnc" );
  list16.putObject( idSCnc, desc55 );
 
  var desc56 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwofour = charIDToTypeID( "NC24" );
  desc56.putEnumerated( idncTp, idSTnc, idNCtwofour );
  var idSCnc = charIDToTypeID( "SCnc" );
  list16.putObject( idSCnc, desc56 );
 
  var desc57 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwofour = charIDToTypeID( "NC24" );
  desc57.putEnumerated( idncTp, idSTnc, idNCtwofour );
  var idSCnc = charIDToTypeID( "SCnc" );
  list16.putObject( idSCnc, desc57 );
 
  desc51.putList( idolNC, list16 );
 
  var idobIA = charIDToTypeID( "obIA" );
  desc51.putBoolean( idobIA, false );
  var idobIP = charIDToTypeID( "obIP" );
  desc51.putString( idobIP, "" );
  var idobCS = charIDToTypeID( "obCS" );
  var idSTcs = charIDToTypeID( "STcs" );
  var idCSzeroone = charIDToTypeID( "CS01" );
  desc51.putEnumerated( idobCS, idSTcs, idCSzeroone );
  var idovNC = charIDToTypeID( "ovNC" );
 
  var list17 = new ActionList();
  var desc58 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCzeroone = charIDToTypeID( "NC01" );
  desc58.putEnumerated( idncTp, idSTnc, idNCzeroone );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc58 );
 
  var desc59 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwozero = charIDToTypeID( "NC20" );
  desc59.putEnumerated( idncTp, idSTnc, idNCtwozero );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc59 );
 
  var desc60 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCzerotwo = charIDToTypeID( "NC02" );
  desc60.putEnumerated( idncTp, idSTnc, idNCzerotwo );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc60 );
 
  var desc61 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNConenine = charIDToTypeID( "NC19" );
  desc61.putEnumerated( idncTp, idSTnc, idNConenine );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc61 );
 
  var desc62 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCzerosix = charIDToTypeID( "NC06" );
  desc62.putEnumerated( idncTp, idSTnc, idNCzerosix );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc62 );
 
  var desc63 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwofour = charIDToTypeID( "NC24" );
  desc63.putEnumerated( idncTp, idSTnc, idNCtwofour );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc63 );
 
  var desc64 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwofour = charIDToTypeID( "NC24" );
  desc64.putEnumerated( idncTp, idSTnc, idNCtwofour );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc64 );
 
  var desc65 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwofour = charIDToTypeID( "NC24" );
  desc65.putEnumerated( idncTp, idSTnc, idNCtwofour );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc65 );
 
  var desc66 = new ActionDescriptor();
  var idncTp = charIDToTypeID( "ncTp" );
  var idSTnc = charIDToTypeID( "STnc" );
  var idNCtwotwo = charIDToTypeID( "NC22" );
  desc66.putEnumerated( idncTp, idSTnc, idNCtwotwo );
  var idSCnc = charIDToTypeID( "SCnc" );
  list17.putObject( idSCnc, desc66 );
 
  desc51.putList( idovNC, list17 );
 
  var idovCM = charIDToTypeID( "ovCM" );
  desc51.putBoolean( idovCM, false );
  var idovCW = charIDToTypeID( "ovCW" );
  desc51.putBoolean( idovCW, true );
  var idovCU = charIDToTypeID( "ovCU" );
  desc51.putBoolean( idovCU, true );
  var idovSF = charIDToTypeID( "ovSF" );
  desc51.putBoolean( idovSF, true );
  var idovCB = charIDToTypeID( "ovCB" );
  desc51.putBoolean( idovCB, true );
  var idovSN = charIDToTypeID( "ovSN" );
  desc51.putString( idovSN, "images" );
  var idSaveForWeb = stringIDToTypeID( "SaveForWeb" );
  desc50.putObject( idUsng, idSaveForWeb, desc51 );
  executeAction( idExpr, desc50, DialogModes.NO );
}

 

Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés