image processor script and the parameter interpolation image (cs3)

Hi all

I am using Bridge and Photoshop CS3 (mac) allows to process batches of photos. I discovered the 'Processor of Image' script does take into account the "image interpolation" setting of my general preferences in Photoshop.

It's very painful, because I can't use 'Of Image Processor' longer, because it produces soft images, where I need sharp ones (my fault for "interpolation of the image" is "Bicubic Sharper".)

No idea/solution workaround?

Thank you

Patrick

Image processor using Image Fit to do the resizing. That you don't like to use Image adjustment BICUBIC method you can editing this script. Change line 143 of

app.activeDocument.resizeImage(newWidth, newHeight, resolution, ResampleMethod.BICUBIC);

TO

app.activeDocument.resizeImage(newWidth, newHeight, resolution, ResampleMethod.BICUBICSHARPER);

Tags: Photoshop

Similar Questions

  • What is the difference between the output of the Script and the result of the query?

    Hello gurus,

    In Oracle SQL Developer, during the execution of a select statement running with the "F5 key", I get the output of the Script; And then if I execute the same select statement using 'Ctrl + Enter', I get basically the same data, but it is formatted to be a little different. and using 'Ctrl + Enter' I can adjust and reduce the size of the column (not the logical and physical structure) on the GUI screen to display all columns without having wide apart. What are the advantages/disadvantages to running queries using "F5" or "Ctrl + Enter"? If someone could shed some light on this topic bit, that would be nice.

    HI HAS LUNS,

    Text (f5) is functional, for the better or for the worst dumps select all.
    Chart is prettier - you get a complete data by select grid and scroll within the grid.
    There are a few other minor differences.

    Personally, I use mostly f5 /text/ (sqlplus emulation).

    -Turloch
    Team SQLDeveloper

  • transition script and the script button do not work together

    Hello

    I have been experiementing with actionscripting transitions between the sections... This is the first site I tried it work with (last 3 had swf loaded in one after the other, rather than in fact the transition between). I used a code from kirupa.com, who works for loading movies in and out, but I also have a code for the buttons of my film. I can get one or the other work, but not together, so I guess I'm clash code somewhere, I could do with help please to find what I'm doing wrong...

    Code buttons and the call of transition are;

    Code:
    MenuBar.B1.onRelease = function() {}
    If (_root.section! = "about.swf") {}
    _root.section = "about.swf";
    _root.transition.gotoAndPlay ("Closing");
    }
    };
    MenuBar.B2.onRelease = function() {}
    If (_root.section! = "portfolio.swf") {}
    _root.section = "portfolio.swf";
    _root.transition.gotoAndPlay ("Closing");
    }
    };
    MenuBar.B3.onRelease = function() {}
    If (_root.section! = "contact.swf") {}
    _root.section = "contact.swf";
    _root.transition.gotoAndPlay ("Closing");
    }
    };


    and the code that I have on my buttons film;
    Code:
    on {(overview)
    gotoAndPlay ("rollover");
    }
    on (releaseOutside, deployment) {}
    gotoAndPlay ("rollout");
    }


    Is it possible to combine them?

    Thank you. Wayne.

    Here is your file corrected. the only changes are described above:

    http://www.gladstien.com/files/fullfatdesigns.fla

  • PowerShell script and the Orchestrator

    Hi guys

    We managed to set up the PowerShell script to run a task in the Orchestrator, the only problem is that we cannot pass the input parameter

    $vCOuser = "xxxxxxxx".

    $vCOpass = "zzzzzzzz.

    $vCOparm = "C:\orchestrator\Test.html".

    # Se connect to vCO and generate proxy $vcoWS

    $vcoWS = New-WebServiceProxy - Uri http:// < server >: 8280/vmware-vmo-webcontrol/webservice? WSDL

    # Print the result

    $vcoWS

    # Find Workflow

    $workflow = $vcoWS.getWorkflowsWithName ("create a simple XML document", $vCOuser, $vCOpass)

    # Print the result

    $workflow

    foreach ($element in $workflow)

    {

    $element.id

    #... and run

    $workflowToken = $vcoWS.executeWorkflow ($element.id, $vCOuser, $vCOpass, inParameters)

    # Print the result

    $workflowToken

    }

    Any help would be appreciated

    Hello!

    You can specify an array of WorkflowtokenAttribute objects and pass it to the executeWorkflow method:

    $inparams += New-Object -TypeName VCO.WorkflowTokenAttribute
    $inparams[0].name = "inputString"
    $inparams[0].type = "String"
    $inparams[0].value = "Hello World"
    
    $inparams
    
    # ... and exectue (use $null instead on $inparams if Workflow has no input parameters
    # ... und ausführen
    $workflowToken = $vcoWS.executeWorkflow($workflow.id, "vcoadmin1" , "VMware2010", $inparams)
    $workflowToken
    

    See the complete example here:

    http://www.vcoportal.de/2011/06/updated-calling-VCO-workflows-from-PowerShell/

    http://www.vcoportal.de/examples/PowerShell-VCO/

    Kind regards

    Joerg

  • Facilities by script and the KickStart syntax reference

    Greetings!

    Joined.

    I play with a script installations of ESX 4 in my lab at home (2 x HP DL160 G6 + iSCSI SAN)

    I found a few examples of KickStart to automate the installation procedures.

    Is there a place where to go for the reference syntax KickStart/Automation?

    In addition, many variants of automation script how different are there?

    For example, in a sample script that I found, I can see the following few lines:

    "...

    art cos - fstype = vmfs3 - size = 9000 - ondisk = [DISKTYPE]

    No part - fstype = vmkcore - size = 250 - ondisk = [DISKTYPE]

    VirtualDisk vd1 - size = 7500 - onvmfs = cos

    part / - fstype = ext3 - size = 3000 - onvirtualdisk = vd1 - grow

    party swap - fstype swap - size = 1000 = - onvirtualdisk = vd1

    part / opt - fstype = ext3 - size = 1000 - onvirtualdisk = vd1

    part/tmp - fstype = ext3 - size = 1000 - onvirtualdisk = vd1

    part/home - fstype = ext3 - size = 1000 - onvirtualdisk = vd1

    1. VMware specific commands

    vmaccepteula

    % packets

    % post - interpreter = bash

    ..."

    What scripting language are the lines that are part of?

    Best regards

    -Eugene

    Hello

    The ESX and vCenter Server Installation Guide http://www.vmware.com/pdf/vsphere4/r40/vsp_40_esx_vc_installation_guide.pdf page 43 has a nice introduction few facilities by script

    This blog is also very good: http://virtualfoundry.blogspot.com/2009/04/ultimate-kickstart-file-part-one.html

  • How to solve error messages 'no such interface taken in charge"and"the parameter is incorrect. "

    I used the program "should I delete It ' the other day and uninstalled Free File Viewer and backup AVG toolbar.  Since then, most of the programs on the list of the Start button do not work.  I get no message at all or the above messages.  I am able to get to my email and FB and Internet sites, that I type in the address space.  I hope someone can help.

    Hello

    These are the normal reasons for problems with the system restore:

    1. If you are using Norton, you should disable Norton inviolable Protection before using the system restore.

    http://Service1.Symantec.com/support/sharedtech.nsf/pfdocs/2005113009323013

    AVG will cause problems with SR too.

    «Temporarily disable AVG»

    http://www.Avg.com/ww-en/FAQ.Num-3857

    2. try to use Safe Mode system restore.

    http://Windows.Microsoft.com/en-us/Windows7/products/features/system-restore

    "Start your computer in safe mode.

    http://Windows.Microsoft.com/en-us/Windows/Start-computer-safe-mode#start-computer-safe-mode=Windows-7

    3 Malware will stop at the system restore.

    Download, install, update and scan your system with the free version of Malwarebytes AntiMalware:

    http://www.Malwarebytes.org/products/malwarebytes_free

    See you soon.

  • Works with tables/columns of the lines and the parameter names... syntax help

    I am trying to create a function that returns the distinct value and counts of a user defined schema/table/column.

    The code below defines a [stats_on_column_obj] object type and creates a single table of this type [stats_on_column_tab].

    The function is supposed to take three input variables: p_schema_name, nom_table_p, p_column_name and return an array (above).

    I can hardcode a select into (the)... but once I try to convert it into settings & immediate exec I'm stuck. The red section is where the problem is (I think).

    Oracle 10g.

    Stats_on_column_obj CREATE TYPE IS OBJECT (

    COL_VAL VARCHAR2 (500),

    NUMBER OF COL_VAL_CNT (7)

    );

    CREATE TYPE Stats_on_column_tab IS TABLE OF stats_on_column_obj;


    FUNCTION to CREATE or REPLACE get_STATS_ON_COLUMN

    (

    p_schema_name IN varchar2,

    nom_table_p IN varchar2,

    p_column_name IN varchar2

    )

    RETURN STATS_ON_COLUMN_tab

    IS

    l_STATS_ON_COLUMN_tab STATS_ON_COLUMN_tab: = STATS_ON_COLUMN_tab ();

    n INTEGER: = 0;

    str_select_tbl varchar2 (5000);

    BEGIN

    str_select_tbl: = 'SELECT'. p_column_name |' as col_val, count (*) as col_val_cnt FROM ' | p_schema_name |'. ' || nom_table_p: ' group of ' | p_column_name;

    FOR r IN (str_select_tbl)

    LOOP

    l_STATS_ON_COLUMN_tab. EXTEND;

    n: = n + 1;

    l_STATS_ON_COLUMN_tab (n): = STATS_ON_COLUMN_obj (r.col_val, r.col_val_cnt);

    END LOOP;

    RETURN l_STATS_ON_COLUMN_tab;

    END;

    /

    [Error] PLS-00103 (124:4): PLS-00103: encountered the symbol "LOOP" when expecting one of the following numbers: * & - + / at rem rest mod.. < an exponent (*) > | multiset year DAY_

    [Error] PLS-00103 (126:9): PLS-00103: encountered the symbol "=" when expected in the following way: constant exception < an ID > < a between double quote delimited identifiers > double Ref table Fedya Chariot of time timestam

    [Error] PLS-00103 (127:29): PLS-00103: encountered the symbol "

    [Error] PLS-00103 (128:4): PLS-00103: encountered the symbol "END" when waiting for one of the following numbers: begin function package pragma procedure subtype type use < an ID > < a double quote delimited identifier > form

    SELECT * FROM TABLE (get_STATS_ON_COLUMN ('SCHEMAS_X', 'TABLE_X', 'COLUMN_X'));

    Scott@ORCL > CREATE OR REPLACE
    FUNCTION get_STATS_ON_COLUMN () 2
    3 p_schema_name IN varchar2,
    4 nom_table_p IN varchar2,
    5 p_column_name IN varchar2
    6                                )
    7 STATS_ON_COLUMN_tab of RETURN
    8 EAST
    9 v_STATS_ON_COLUMN_tab STATS_ON_COLUMN_tab: = STATS_ON_COLUMN_tab ();
    10 v_n INTEGER: = 0;
    11 v_str_select_tbl VARCHAR2 (5000);
    BEGIN 12
    13 v_str_select_tbl: = ' SELECT stats_on_column_obj (' | p_column_name |) ', Count OF ' |
    14 p_schema_name | '.' || nom_table_p | "Group of" | p_column_name;
    15 v_str_select_tbl EXECUTE IMMEDIATE
    COLLECTION IN BULK 16
    17 IN v_STATS_ON_COLUMN_tab;
    18 RETURN v_STATS_ON_COLUMN_tab;
    END 19;
    20.

    The function is created.

    Scott@ORCL > select *.
    2 from table)
    (3 get_STATS_ON_COLUMN)
    4                                            'SCOTT',
    5                                            'EMP',
    6                                            'JOB'
    7                                           )
    8                       )
    9.

    COL_VAL COL_VAL_CNT
    -------------------- -----------
    CLERK                          4
    SELLER 4
    PRESIDENT 1
    MANAGER 3
    ANALYST 2

    Scott@ORCL >

    Or better change function in the pipeline.

    SY.

  • using dbms_metadata for retrieve data type name and the parameter of a procedure

    Hi guru,.

    is there a subprogramme in dbms_metadata which will extract that ideally the specifications of a procedure/function call

    If the my program spec is proc1 (id1 number, CRC in varchar2, id2 number)

    If I call something like

    Select * from table (dbms_metadata. < subprogramme > ("proc2"));

    It gives me

    Id1 number

    CRC in varchar2

    Id2 number

    ideas/pointers?

    Why do you need to do this?

    See S/n/ALL/$user_arguments.

  • Value of the parameter is not displayed when moving from page of the dialog box

    Hello

    The question I face, is that I have a backup button with the logic in the PFR in which I call a page of dialogue that has an OK button. I give the floor to press ok another page. I need to capture a XXParty parameter that I put in the CO LIC key but is not displayed in the central of the PR of the other page that is called when you press the OK button. Probably I'm missing something very small. Any help would be greatly appreciated. Thank you


    SAVE BUTTON controller LIC... (Call the dialog box and the parameter)
    =============================================
    If (SaveButton! = null)
    {am.invokeMethod ("addNotes", params);  Transaction record.
    System.out.println ("save backwards");
    Try to build your own Page of dialogue here...
    String MainUrl = "OA.jsp?page=xxksms/oracle/apps/imc/ksms/webui/ShipperOverviewPG & retainAM = Y;
    OAException descMesg = new OAException ("XXTSA", "XX_KSMS_SAVED_NOTES");
    OAException instrMesg = new OAException ("FND", "FND_CANCEL_ALERT");

    DialogPage OADialogPage = new OADialogPage (OAException.INFORMATION, descMesg, null, MainUrl, null);
    OK button to send back the values of the PartyID for CO of the ShipperOverview Page.
    System.out.println ("The party ID is" + left); It is displayed.
    dialogPage.setPostToCallingPage (true);
    java.util.Hashtable formParams = new java.util.Hashtable (1);
    formParams.put ("XXParty", out); Part definition ID in XXParty.
    dialogPage.setFormParameters (formParams);
    pageContext.redirectToDialogPage (dialogPage);


    Partial code in the process asks in the called ShipperOverview Page of the dialog box's OK button
    ====================================================
    super.processRequest (pageContext, webBean);
    Am = (OAApplicationModule) pageContext.getApplicationModule (webBean) OAApplicationModule;
    String XXId = pageContext.getParameter ("XXParty"); Try to recover part ID here of page of the dialog box.
    System.out.println ("The PartyID is" + XXId);

    Salvation;

    Try one of these two options.

    1. pass the value of the part directly in the URL & get it 2nd co:
    String MainUrl = 'OA.jsp?page=xxksms/oracle/apps/imc/ksms/webui/ShipperOverviewPG&retainAM=Y&XXParty="+Party;

    2. After selecting the button ok in the dialog box get the parameters in CO 1 himself then using URL forward, send them to CO 2

    If (SaveButton! = null)
    *{*
    * //Your code... *.
    *//..............*
    *//............*

    Default OAException = new OAException ("XXABCD", "XXABCD_GNO_DELETE_WARNING");
    DialogPage OADialogPage = new OADialogPage (OAException.WARNING, default, null, "","");
    dialogPage.setOkButtonItemName ("DeleteYesButton");
    dialogPage.setOkButtonToPost (true);
    dialogPage.setPostToCallingPage (true);
    String lineId = pageContext.getParameter ("lineId");
    Hashtable ht = new Hashtable();
    HT.put ("lineId", lineId);
    HT.put ('actor', actor);
    HT.put ("empId", empId);
    dialogPage.setFormParameters (ht);
    pageContext.redirectToDialogPage (dialogPage);

    *}*

    * combination else if (pageContext.getParameter ("DeleteYesButton")! = null) {*}
    String lineId = pageContext.getParameter ("lineId");
    String = pageContext.getParameter ("actor") actor;
    Var empId = pageContext.getParameter("empId");
    HashMap formParams = new HashMap (1);
    formParams.put ("lineId", lineId);
    formParams.put ('actor', actor);
    formParams.put ("empId", empId);
    pageContext.forwardImmediately ("OA.jsp?page=/xxx/oracle/apps/xxabcd/appraisal/webui/DrillDownPG",
    NULL, KEEP_MENU_CONTEXT,
    NULL, formParams, true,
    ADD_BREAD_CRUMB_NO);
    *}*

    --
    GsrC

  • Image Processor Pro and image converter eps files without pixelation them loading

    Hello. My name is Lucas. IM of the Argentina, who now lives in the Brazil. I have the problem that is in the title. IM new to do such things but to read much, I discovered that both scripts open files eps and because what they do is reasterized, then files stored looks preety bad.

    I know that there are some parameters to open the eps, e.g.:

    var epsOpenOptions = new EPSOpenOptions();
       epsOpenOptions.antiAlias = true;
       epsOpenOptions.mode = OpenDocumentMode.RGB;
       epsOpenOptions.resolution = 72;
       epsOpenOptions.constrainProportions = true;
    
    

    I must say that the search for a solution has found a script and changed to partially answer my needs. I said partially because I need the script to review the files and save the output files with the same structure. Here's the script that manage a folder at the same time:

    #target photoshop
    // Asks user for input folder
    var inputFolder = Folder.selectDialog("Select a folder to process");
    // Asks user for output folder
    var OutputFolder = Folder.selectDialog("Select a folder to save your Tiffs");
    if ( inputFolder != null && OutputFolder  != null ) {
       
       // Makes list of all files located in that folder
       var fileList = inputFolder.getFiles( "*.eps" );
       
       // Create a EPS option object [height & width are doc size]
       var epsOpenOptions = new EPSOpenOptions();
       epsOpenOptions.antiAlias = true;
       epsOpenOptions.mode = OpenDocumentMode.RGB;
       epsOpenOptions.resolution = 72;
       epsOpenOptions.constrainProportions = true;
       
        
       // Open each file in turn
       for (var i = 0; i < fileList.length; i++) {
          
          // open the file
          app.open( fileList[i], epsOpenOptions );
          
          var baseName = activeDocument.name.slice( 0,-4 );
          
          // put your code to 'save as' the file here
          var saveFile = new File ( OutputFolder + "/" + baseName + ".jpg" );
       SaveForWeb(saveFile,60); // set quality to suit
          
          
     function SaveForWeb(saveFile,jpegQuality) {
      var sfwOptions = new ExportOptionsSaveForWeb(); 
      sfwOptions.format = SaveDocumentType.JPEG; 
      sfwOptions.includeProfile = false; 
      sfwOptions.interlaced = 0; 
      sfwOptions.optimized = true; 
      sfwOptions.quality = jpegQuality;
     
     activeDocument.exportDocument(saveFile, ExportType.SAVEFORWEB, sfwOptions);
      
       };  
     activeDocument.close( SaveOptions.DONOTSAVECHANGES );  
          
          
       
       };
       
       };
    
     
     
     
    

    So, if you know a way change image processor pro or photo I will be very happy.

    Because I use only the script to handle eps files and save them as jpg (except for the web) I don't have a special button to activate this option. Keep things simple. Thank you!!

    You can tweak ImageProcessorPro.jsx to do the following editing.

    Search for code that looks like this:

    ImageProcessor.prototype.openDocument = function(file) {
      var self = this;
      var settings = self.settings;
      var mode = DialogModes.NO;
      var ext = file.strf("%e").toLowerCase();
      var isRaw = ImageProcessor.CAMERA_RAW_FILES.contains(ext);
    
      if (isRaw) {
      }
    

    and insert this code right after it:

      if (ext == "eps") {
        var epsOpenOptions = new EPSOpenOptions();
        epsOpenOptions.antiAlias = true;
        epsOpenOptions.mode = OpenDocumentMode.RGB;
        epsOpenOptions.resolution = 72;
        epsOpenOptions.constrainProportions = true;
        try {
          var doc = app.open(file, epsOpenOptions);
        } catch (e) {
          Error.runtimeError(9002, ZStrings.UnableToOpenErr);
        }
        return doc;
      }
    

    I have not tested at all, but it looks good from here.

  • use Image catalog script for the current document

    Is it possible to use the script to image catalogue for the current document in which we work instead of leaving the mark of script a new document fees for placed images?

    use,

    //ImageCatalog.jsx
    //An InDesign CS6 JavaScript
    /*
    @@@BUILDINFO@@@ "ImageCatalog.jsx" 3.0.0 15 December 2009
    */
    //Creates an image catalog from the graphic files in a selected folder.
    //Each file can be labeled with the file name, and the labels are placed on
    //a separate layer and formatted using a paragraph style ("label") you can
    //modify to change the appearance of the labels.
    //
    //For more information on InDesign scripting, go to http://www.adobe.com/products/indesign/scripting/index.html
    //Or visit the InDesign Scripting User to User forum at http://www.adobeforums.com .
    //
    //The myExtensions array contains the extensions of the graphic file types you want
    //to include in the catalog. You can remove extensions from or add extensions to this list.
    //myExtensions is a global. Mac OS users should also look at the file types in the myFileFilter function.
    main();
    function main(){
      var myFilteredFiles;
      //Make certain that user interaction (display of dialogs, etc.) is turned on.
      app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
      myExtensions = [".jpg", ".jpeg", ".eps", ".ps", ".pdf", ".tif", ".tiff", ".gif", ".psd", ".ai"]
      //Display the folder browser.
      var myFolder = Folder.selectDialog("Select the folder containing the images", "");
      //Get the path to the folder containing the files you want to place.
      if(myFolder != null){
      if(File.fs == "Macintosh"){
      myFilteredFiles = myMacOSFileFilter(myFolder);
      }
      else{
      myFilteredFiles = myWinOSFileFilter(myFolder);
      }
      if(myFilteredFiles.length != 0){
      myDisplayDialog(myFilteredFiles, myFolder);
      alert("Done!");
      }
      }
    }
    //Windows version of the file filter.
    function myWinOSFileFilter(myFolder){
      var myFiles = new Array;
      var myFilteredFiles = new Array;
      for(myExtensionCounter = 0; myExtensionCounter < myExtensions.length; myExtensionCounter++){
      myExtension = myExtensions[myExtensionCounter];
            myFiles = myFolder.getFiles("*"+ myExtension);
      if(myFiles.length != 0){
      for(var myFileCounter = 0; myFileCounter < myFiles.length; myFileCounter++){
      myFilteredFiles.push(myFiles[myFileCounter]);
      }
      }
      }
      return myFilteredFiles;
    }
    function myMacOSFileFilter(myFolder){
      var myFilteredFiles = myFolder.getFiles(myFileFilter);
      return myFilteredFiles;
    }
    //Mac OS version of file filter
    //Have to provide a separate version because not all Mac OS users use file extensions
    //and/or file extensions are sometimes hidden by the Finder.
    function myFileFilter(myFile){
      var myFileType = myFile.type;
      switch (myFileType){
      case "JPEG":
      case "EPSF":
      case "PICT":
      case "TIFF":
      case "8BPS":
      case "GIFf":
      case "PDF ":
      return true;
      break;
      default:
      for(var myCounter = 0; myCounter-1){
      return true;
      break;
      }
      }
      }
      return false;
    }
    function myDisplayDialog(myFiles, myFolder){
      var myLabelWidth = 112;
      var myStyleNames = myGetParagraphStyleNames(app);
      var myLayerNames = ["Layer 1", "Labels"];
      var myDialog = app.dialogs.add({name:"Image Catalog"});
      with(myDialog.dialogColumns.add()){
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Information:"});
      }
      with(borderPanels.add()){
      with(dialogColumns.add()){
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Source Folder:", minWidth:myLabelWidth});
      staticTexts.add({staticLabel:myFolder.path + "/" + myFolder.name});
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Number of Images:", minWidth:myLabelWidth});
      staticTexts.add({staticLabel:myFiles.length + ""});
      }
      }
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Options:"});
      }
      with(borderPanels.add()){
      with(dialogColumns.add()){
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Number of Rows:", minWidth:myLabelWidth});
      var myNumberOfRowsField = integerEditboxes.add({editValue:3});
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Number of Columns:", minWidth:myLabelWidth});
      var myNumberOfColumnsField = integerEditboxes.add({editValue:3});
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Horizontal Offset:", minWidth:myLabelWidth});
      var myHorizontalOffsetField = measurementEditboxes.add({editValue:12, editUnits:MeasurementUnits.points});
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Vertical Offset:", minWidth:myLabelWidth});
      var myVerticalOffsetField = measurementEditboxes.add({editValue:24, editUnits:MeasurementUnits.points});
      }
      with (dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Fitting:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myFitProportionalCheckbox = checkboxControls.add({staticLabel:"Proportional", checkedState:true});
      var myFitCenterContentCheckbox = checkboxControls.add({staticLabel:"Center Content", checkedState:true});
      var myFitFrameToContentCheckbox = checkboxControls.add({staticLabel:"Frame to Content", checkedState:true});
      }
      }
      with(dialogRows.add()){
      var myRemoveEmptyFramesCheckbox = checkboxControls.add({staticLabel:"Remove Empty Frames:", checkedState:true});
      }
      }
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:""});
      }
      var myLabelsGroup = enablingGroups.add({staticLabel:"Labels", checkedState:true});
      with (myLabelsGroup){
      with(dialogColumns.add()){
      //Label type
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Label Type:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLabelTypeDropdown = dropdowns.add({stringList:["File name", "File path", "XMP description", "XMP author"], selectedIndex:0});
      }
      }
      //Text frame height
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Label Height:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLabelHeightField = measurementEditboxes.add({editValue:24, editUnits:MeasurementUnits.points});
      }
      }
      //Text frame offset
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Label Offset:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLabelOffsetField = measurementEditboxes.add({editValue:0, editUnits:MeasurementUnits.points});
      }
      }
      //Style to apply
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Label Style:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLabelStyleDropdown = dropdowns.add({stringList:myStyleNames, selectedIndex:0});
      }
      }
      //Layer
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Layer:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLayerDropdown = dropdowns.add({stringList:myLayerNames, selectedIndex:0});
      }
      }
      }
      }
            var myResult = myDialog.show();
            if(myResult == true){
      var myNumberOfRows = myNumberOfRowsField.editValue;
      var myNumberOfColumns = myNumberOfColumnsField.editValue;
      var myRemoveEmptyFrames = myRemoveEmptyFramesCheckbox.checkedState;
      var myFitProportional = myFitProportionalCheckbox.checkedState;
      var myFitCenterContent = myFitCenterContentCheckbox.checkedState;
      var myFitFrameToContent = myFitFrameToContentCheckbox.checkedState;
      var myHorizontalOffset = myHorizontalOffsetField.editValue;
      var myVerticalOffset = myVerticalOffsetField.editValue;
      var myMakeLabels = myLabelsGroup.checkedState;
      var myLabelType = myLabelTypeDropdown.selectedIndex;
      var myLabelHeight = myLabelHeightField.editValue;
      var myLabelOffset = myLabelOffsetField.editValue;
      var myLabelStyle = myStyleNames[myLabelStyleDropdown.selectedIndex];
      var myLayerName = myLayerNames[myLayerDropdown.selectedIndex];
      myDialog.destroy();
      myMakeImageCatalog(myFiles, myNumberOfRows, myNumberOfColumns, myRemoveEmptyFrames, myFitProportional, myFitCenterContent, myFitFrameToContent, myHorizontalOffset, myVerticalOffset, myMakeLabels, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle,  myLayerName);
            }
      else{
      myDialog.destroy();
      }
      }
    }
    function myGetParagraphStyleNames(myDocument){
      var myStyleNames = new Array;
      var myAddLabelStyle = true;
      for(var myCounter = 0; myCounter < myDocument.paragraphStyles.length; myCounter++){
      myStyleNames.push(myDocument.paragraphStyles.item(myCounter).name);
      if (myDocument.paragraphStyles.item(myCounter).name == "Labels"){
      myAddLabelStyle = false;
      }
      }
      if(myAddLabelStyle == true){
      myStyleNames.push("Labels");
      }
      return myStyleNames;
    }
    function myMakeImageCatalog(myFiles, myNumberOfRows, myNumberOfColumns, myRemoveEmptyFrames, myFitProportional, myFitCenterContent, myFitFrameToContent, myHorizontalOffset, myVerticalOffset, myMakeLabels, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle,  myLayerName){
      var myPage, myFile, myCounter, myX1, myY1, myX2, myY2, myRectangle, myLabelStyle, myLabelLayer;
      var myParagraphStyle, myError;
      var myFramesPerPage = myNumberOfRows * myNumberOfColumns;
      var myDocument = app.activeDocument;
      myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
      myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;
      var myDocumentPreferences = myDocument.documentPreferences;
      var myNumberOfFrames = myFiles.length;
      var myNumberOfPages = Math.round(myNumberOfFrames / myFramesPerPage);
      if ((myNumberOfPages * myFramesPerPage) < myNumberOfFrames){
      myNumberOfPages++;
      }
      //If myMakeLabels is true, then add the label style and layer if they do not already exist.
      if(myMakeLabels == true){
      try{
      myLabelLayer = myDocument.layers.item(myLayerName);
      //if the layer does not exist, trying to get the layer name will cause an error.
      myLabelLayer.name;
      }
      catch (myError){
      myLabelLayer = myDocument.layers.add({name:myLayerName});
      }
      //If the paragraph style does not exist, create it.
      try{
      myParagraphStyle = myDocument.paragraphStyles.item(myLabelStyle);
      myParagraphStyle.name;
      }
      catch(myError){
      myDocument.paragraphStyles.add({name:myLabelStyle});
      }
      }
      myDocumentPreferences.pagesPerDocument = myNumberOfPages;
      myDocumentPreferences.facingPages = false;
      var myPage = myDocument.pages.item(0);
      var myMarginPreferences = myPage.marginPreferences;
      var myLeftMargin = myMarginPreferences.left;
      var myTopMargin = myMarginPreferences.top;
      var myRightMargin = myMarginPreferences.right;
      var myBottomMargin = myMarginPreferences.bottom;
      var myLiveWidth = (myDocumentPreferences.pageWidth - (myLeftMargin + myRightMargin)) + myHorizontalOffset
      var myLiveHeight = myDocumentPreferences.pageHeight - (myTopMargin + myBottomMargin)
      var myColumnWidth = myLiveWidth / myNumberOfColumns
      var myFrameWidth = myColumnWidth - myHorizontalOffset
      var myRowHeight = (myLiveHeight / myNumberOfRows)
      var myFrameHeight = myRowHeight - myVerticalOffset
      var myPages = myDocument.pages;
      // Construct the frames in reverse order. Don't laugh--this will
      // save us time later (when we place the graphics).
      for (myCounter = myDocument.pages.length-1; myCounter >= 0; myCounter--){
      myPage = myPages.item(myCounter);
      for (var myRowCounter = myNumberOfRows; myRowCounter >= 1; myRowCounter--){
      myY1 = myTopMargin + (myRowHeight * (myRowCounter-1));
      myY2 = myY1 + myFrameHeight;
      for (var myColumnCounter = myNumberOfColumns; myColumnCounter >= 1; myColumnCounter--){
      myX1 = myLeftMargin + (myColumnWidth * (myColumnCounter-1));
      myX2 = myX1 + myFrameWidth;
      myRectangle = myPage.rectangles.add(myDocument.layers.item(-1), undefined, undefined, {geometricBounds:[myY1, myX1, myY2, myX2], strokeWeight:0, strokeColor:myDocument.swatches.item("None")});
      }
      }
      }
      // Because we constructed the frames in reverse order, rectangle 1
      // is the first rectangle on page 1, so we can simply iterate through
      // the rectangles, placing a file in each one in turn. myFiles = myFolder.Files;
      for (myCounter = 0; myCounter < myNumberOfFrames; myCounter++){
      myFile = myFiles[myCounter];
      myRectangle = myDocument.rectangles.item(myCounter);
      myRectangle.place(File(myFile));
      myRectangle.label = myFile.fsName.toString();
      //Apply fitting options as specified.
      if(myFitProportional){
      myRectangle.fit(FitOptions.proportionally);
      }
      if(myFitCenterContent){
      myRectangle.fit(FitOptions.centerContent);
      }
      if(myFitFrameToContent){
      myRectangle.fit(FitOptions.frameToContent);
      }
      //Add the label, if necessary.
      if(myMakeLabels == true){
      myAddLabel(myRectangle, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle, myLayerName);
      }
      }
      if (myRemoveEmptyFrames == 1){
      for (var myCounter = myDocument.rectangles.length-1; myCounter >= 0;myCounter--){
      if (myDocument.rectangles.item(myCounter).contentType == ContentType.unassigned){
      myDocument.rectangles.item(myCounter).remove();
      }
      else{
      //As soon as you encounter a rectangle with content, exit the loop.
      break;
      }
      }
      }
    }
    //Function that adds the label.
    function myAddLabel(myFrame, myLabelType, myLabelHeight, myLabelOffset, myLabelStyleName, myLayerName){
      var myDocument = app.documents.item(0);
      var myLabel;
      var myLabelStyle = myDocument.paragraphStyles.item(myLabelStyleName);
      var myLabelLayer = myDocument.layers.item(myLayerName);
      var myLink =myFrame.graphics.item(0).itemLink;
      //Label type defines the text that goes in the label.
      switch(myLabelType){
      //File name
      case 0:
      myLabel = myLink.name;
      break;
      //File path
      case 1:
      myLabel = myLink.filePath;
      break;
      //XMP description
      case 2:
      try{
      myLabel = myLink.linkXmp.description;
      if(myLabel.replace(/^\s*$/gi, "")==""){
      throw myError;
      }
      }
      catch(myError){
      myLabel = "No description available.";
      }
      break;
      //XMP author
      case 3:
      try{
      myLabel = myLink.linkXmp.author
      if(myLabel.replace(/^\s*$/gi, "")==""){
      throw myError;
      }
      }
      catch(myError){
      myLabel = "No author available.";
      }
      break;
      }
      var myX1 = myFrame.geometricBounds[1];
      var myY1 = myFrame.geometricBounds[2] + myLabelOffset;
      var myX2 = myFrame.geometricBounds[3];
      var myY2 = myY1 + myLabelHeight;
      var myTextFrame = myFrame.parent.textFrames.add(myLabelLayer, undefined, undefined,{geometricBounds:[myY1, myX1, myY2, myX2], contents:myLabel});
      myTextFrame.textFramePreferences.firstBaselineOffset = FirstBaseline.leadingOffset;
      myTextFrame.parentStory.texts.item(0).appliedParagraphStyle = myLabelStyle;
    }
    
  • How to batch, fusion of the 3 different images? I use molten and the total of 240 different images.

    How to batch, fusion of the 3 different images? I use molten and the total of 240 different images.
    is there any script for it?

    like photoshop, batch processing is unable to identify 3 different images and merge these three images. Instead, it performs the action on a single image.

    Thank you

    under the direction

    // 2015, use it at your own risk;
    #target photoshop
    var theFolder = Folder.selectDialog ("select folder");
    if (theFolder) {
    ////////////////////////////////////
    var theFolders = theFolder.getFiles(getFolders);
    for (var a = 0; a < theFolders.length; a++) {
    var theFiles = Folder(theFolders[a]).getFiles(/\.(jpg|tif|eps|psd)$/i);
    ////////////////////////////////////
    // open first image;
    theFile = app.open(theFiles[0]);
    var basename = theFile.name.match(/(.*)\.[^\.]+$/)[1];
    // place other files;
    for (var m = 1; m < theFiles.length; m++) {
    placeScaleRotateFile (theFiles[m], 0, 0, 100, 100, 0, false);
    // set to screen;
    theFile.activeLayer.blendMode = BlendMode.SCREEN
    };
    // save as psd;
    psdOpts = new PhotoshopSaveOptions();
    psdOpts.embedColorProfile = true;
    psdOpts.alphaChannels = true;
    psdOpts.layers = true;
    psdOpts.spotColors = true;
    theFile.saveAs((new File(theFolder+'/'+basename+".psd")),psdOpts,false);
    };
    };
    ////////////////////////////////////
    ////// place //////
    function placeScaleRotateFile (file, xOffset, yOffset, theXScale, theYScale, theAngle, linked) {
    // =======================================================
    var idPlc = charIDToTypeID( "Plc " );
        var desc5 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
        desc5.putPath( idnull, new File( file ) );
        var idFTcs = charIDToTypeID( "FTcs" );
        var idQCSt = charIDToTypeID( "QCSt" );
        var idQcsa = charIDToTypeID( "Qcsa" );
        desc5.putEnumerated( idFTcs, idQCSt, idQcsa );
        var idOfst = charIDToTypeID( "Ofst" );
            var desc6 = new ActionDescriptor();
            var idHrzn = charIDToTypeID( "Hrzn" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc6.putUnitDouble( idHrzn, idPxl, xOffset );
            var idVrtc = charIDToTypeID( "Vrtc" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc6.putUnitDouble( idVrtc, idPxl, yOffset );
        var idOfst = charIDToTypeID( "Ofst" );
        desc5.putObject( idOfst, idOfst, desc6 );
        var idWdth = charIDToTypeID( "Wdth" );
        var idPrc = charIDToTypeID( "#Prc" );
        desc5.putUnitDouble( idWdth, idPrc, theYScale );
        var idHght = charIDToTypeID( "Hght" );
        var idPrc = charIDToTypeID( "#Prc" );
        desc5.putUnitDouble( idHght, idPrc, theXScale );
        var idAngl = charIDToTypeID( "Angl" );
        var idAng = charIDToTypeID( "#Ang" );
        desc5.putUnitDouble( idAngl, idAng,theAngle );
    if (linked == true) {
        var idLnkd = charIDToTypeID( "Lnkd" );
        desc5.putBoolean( idLnkd, true );
      };
    executeAction( idPlc, desc5, DialogModes.NO );
    // get layerid;
    var ref = new ActionReference();
    ref.putProperty (stringIDToTypeID ("property"), stringIDToTypeID ("layerID"));
    ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
    var layerDesc = executeActionGet(ref);
    var layerID = layerDesc.getInteger (stringIDToTypeID ("layerID"));
    // =======================================================
    return [app.activeDocument.activeLayer, layerID];
    };
    ////// get folders //////
    function getFolders (theObj) {
    if (theObj.constructor == Folder) {return true}
    };
    
  • Need a Script to the space of images on a total gap, then tag each image with the percentage of the total image space

    By editing the other scripts, I found here and other sites (including the labels size rorohiko), I worked on a script that will each image with the dimensions of the label and calculate the percentage of the spread of everything (including the text, white space).

    Now, I was invited to a script that tagged the images with the percentage of total image on a gap space. This script is so space images on a total gap, then tag each image with the percentage of the total image space. For example if there is an image that is 10 x 10 inches and four pictures that are images of 2.5x2.5, 10 x 10 would be tagged with 50% and the 2.5x2.5 would be tagged with 12.5%.

    This is the script that does the percentage of total circulation. Can some clever person get to do what I need?

    Suze

    (Sorry, I don't know how to post the script here with line numbers!)

    //

    This script adds printing of information labels to each graphic image. The labels are on a separate layer

    named "PercentageLabels" so that all these added labels can be removed again by simply removing

    the layer.

    //

    If you move or resize items, simply re-run the script to update the labels.

    //

    Before (re) start the script, you can define a paragraph style "SizeLabelStyle".

    This style will apply to all content on labels.

    //

    Before (re) start the script, you can set a style of object 'SizeLabelObjectStyle '.

    This style of object apply to all executives of the label - so if you want a specific background

    fill out or frame, do it through this object style.

    //

    You can change the units of the size label. I put in inches. Change the line below that has

    kUnitToUse - you can use:

    MeasurementUnits.CENTIMETERS

    MeasurementUnits.CICERO

    MeasurementUnits.INCHES

    MeasurementUnits.MILLIMETERS

    MeasurementUnits.PICAS

    MeasurementUnits.PIXELS

    MeasurementUnits.POINTS

    //

    By default the script will not attempt to label the "nested" images If you also want to label

    nested images (for example inline images, anchored frames, pasted images in the images,...) to change the line

    below to read:

    kLabelNestedItems = 1

    //

    If you want a specific image to stay without a label, you can use the Script label palette for

    assign a script called 'ignore' for this frame. The script will then not label this framework to the

    the title of the script is removed again.

    //

    Change the lines with kDontLabelImageFrames, kDontLabelTextFrames, kDontLabelOtherFrames

    below if you want to restrict labelling to only certain types of images: replace the '0'

    in "1" to enable these options.

    //

    Change the line with kShowImageFileName if you also want to display the names of the image in the

    size for the picture frames.

    //

    Small frames are not labelled - the cutoff point is currently a less than 0.1 inch high framework

    or 0.1 inch wide. You can change the cutoff point by adjusting the lines with kDontLabelBelowWidth

    or kDontLabelBelowHeight below.

    //

    var Girard;

    var gScriptFile;

    var gCaches;

    // ****************

    That's cheating spread automatically calculated

    var doc = app.activeDocument;

    doc.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.inches;

    doc.viewPreferences.verticalMeasurementUnits = MeasurementUnits.inches;

    PageWidth = doc.documentPreferences.pageWidth var;

    stucture var pagewidth = * 2;

    var spreadheight = doc.documentPreferences.pageHeight;

    var spreadsquinch = stucture * spreadheight;

    Alert ("the total measure of square inch of spread is:" + spreadsquinch);

    //******************

    VR;

    {

    If (app.activeScript instanceof file)

    {

    var gScriptFile = app.activeScript;

    }

    }

    catch (Girard)

    {

    }

    If (typeof (kLogLevel) is "undefined")

    {

    const kLogLevel = 5;

    const kMaxLogNestLevel = 5;

    const kLogToMessageBox = 0;

    const kLogToConsole = 0;

    const kLogToFile = 0;

    const kLogFileName = "PercentageLabels.log";

    const kIgnoreFrameLabel = "ignore."

    const kSizeLabelLayerName = "PercentageLabels";

    const kLabelNestedItems = 0;

    const kDontLabelImageFrames = 0;

    const kDontLabelTextFrames = 1;

    const kDontLabelOtherFrames = 0;

    const kUnitToUse = MeasurementUnits.INCHES;

    const kShowImageFileName = 0; This set to 1 to precede the name of the image file in the tag

    Below all of the measures are expressed in kUnitToUse (e.g. inches if MeasurementUnits.INCHES is used)

    const kRoundToDecimals = 2;

    The separator to use between objects - for example MyImage.jpg - 7.22 x 9,34

    const kSeparatorBetweenNameAndSize = "-";

    const kSeparatorBetweenHeightAndWidth = "H x"; "

    const kSeparatorAfterWidth = "W";

    const kDontLabelBelowWidth = 0.1; In kUnitToUse

    const kDontLabelBelowHeight = 0.1; In kUnitToUse

    const kLabelStyleName = "SizeLabelStyle";

    const kLabelObjectStyleName = "SizeLabelObjectStyle";

    const kLabelHeight = 0.6; In kUnitToUse

    const kLabelWidth = 2.5; Expressed in kUnitToUse (e.g., inches).

    }

    var gRunState =

    {

    logToMessageBox: kLogToMessageBox,

    logToConsole: kLogToConsole,.

    logToFile: kLogToFile,.

    functionNestLevel: 0,

    logFunctionEntry: true,

    logFunctionExit: true,

    logLevel: kLogLevel,.

    logFileName: kLogFileName

    };

    Main();

    // ****************

    function ConvertToFrame (thePageItem)

    {

    / * / / / LogEntry ("ConvertToFrame");

    var retVal = thePageItem.getElements () [0];

    / * / / / LogExit ("ConvertToFrame");

    Return retVal;

    }

    // ****************

    function CollectionToArray (theCollection)

    {

    / * / / / LogEntry ("CollectionToArray");

    var retVal = theCollection.everyItem () .getElements () .slice (0);

    / * / / / LogExit ("CollectionToArray");

    Return retVal;

    }

    // ****************

    function GetImageFile (pageItem)

    {

    / * / / / LogEntry ("GetImageFile");

    var imageFile = null;

    do

    {

    Try

    {

    pageItem = ConvertToFrame (pageItem);

    If (!) (("allGraphics" in pageItem))

    {

    break;

    }

    var allGraphics = pageItem.allGraphics.slice (0);

    If (allGraphics.length == 0)

    {

    break;

    }

    var chart = allGraphics [0];

    var graphic.itemLink = link;

    imageFile = new File (link.filePath);

    }

    catch (Girard)

    {

    }

    }

    While (false);

    / * / / / LogExit ("GetImageFile");

    return imageFile.

    }

    // ****************

    function GetImageName (pageItem)

    {

    / * / / / LogEntry ("GetImageName");

    var imageName = "";

    do

    {

    var imageFile = GetImageFile (pageItem);

    If (imageFile is nothing)

    {

    break;

    }

    imageName = imageFile.displayName;

    }

    While (false);

    / * / / / LogExit ("GetImageName");

    return imageName;

    }

    // ****************

    function GetOuterPageItem (pageItem)

    {

    / * / / / LogEntry ("GetOuterPageItem");

    var retVal = null;

    do

    {

    Try

    {

    retVal = pageItem.parent;

    If (retVal instanceof spread | retVal instanceof Page)

    {

    retVal = pageItem;

    break;

    }

    If (retVal instanceof character)

    {

    retVal = GetOuterPageItem(retVal.parentTextFrames[0]);

    break;

    }

    }

    catch (Girard)

    {

    retVal = null;

    }

    }

    While (false);

    / * / / / LogExit ("GetOuterPageItem");

    Return retVal;

    }

    // ****************

    function LogMessage (message, collapseLines)

    {

    If (gRunState.logToConsole)

    {

    $.writeln (message);

    }

    If (gRunState.logToFile)

    {

    var logFile = new file (gScriptFile.parent + "/" + gRunState.logFileName);

    var now = new Date();

    logFile.open ("a");

    logFile.write (now.toString () + ":"+ message + "\n" ');

    logFile.close ();

    }

    If (gRunState.logToMessageBox)

    {

    Alert (message);

    }

    }

    // ****************

    LogEntry (message) function

    {

    If (gRunState.logFunctionEntry)

    {

    If (gRunState.functionNestLevel < kMaxLogNestLevel) {}

    for (var idx = 0; idx < gRunState.functionNestLevel; idx ++)

    {

    message = "" + message;

    }

    Filled (message + "<", true);

    }

    }

    gRunState.functionNestLevel ++;

    }

    // ****************

    function LogError (message)

    {

    If (gRunState.logLevel > = 1).

    {

    LogMessage ("* ERROR *:" + message, false);

    }

    }

    // ****************

    function LogExit (message)

    {

    -gRunState.functionNestLevel;

    If (gRunState.functionNestLevel < 0)

    {

    LogError ("LogExit: unbalanced nesting of function");

    }

    If (gRunState.logFunctionExit)

    {

    If (gRunState.functionNestLevel < kMaxLogNestLevel) {}

    for (var idx = 0; idx < gRunState.functionNestLevel; idx ++)

    {

    message = "" + message;

    }

    Filled (message + ">", true);

    }

    }

    }

    // ****************

    function LogNote (message)

    {

    If (gRunState.logLevel > = 3)

    {

    LogMessage ("Note:" + message, false);

    }

    }

    // ****************

    function LogWarning (message)

    {

    If (gRunState.logLevel > = 2)

    {

    LogMessage ("WARNING:" + message, false);

    }

    }

    // ****************

    function Main()

    {

    / * / / / LogEntry ("Main");

    var savedUserInteractionLevel = app.scriptPreferences.userInteractionLevel;

    app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;

    do

    {

    Try

    {

    activeDocument var = app.activeDocument;

    If (!.) (activeDocument instanceof Document))

    {

    LogError ("hand: activeDocument isn't a Document");

    break;

    }

    var savedHorizontalMeasurementUnits = activeDocument.viewPreferences.horizontalMeasurementUnits;

    activeDocument.viewPreferences.horizontalMeasurementUnits = kUnitToUse;

    var savedVerticalMeasurementUnits = activeDocument.viewPreferences.verticalMeasurementUnits;

    activeDocument.viewPreferences.verticalMeasurementUnits = kUnitToUse;

    var savedRulerOrigin = activeDocument.viewPreferences.rulerOrigin;

    activeDocument.viewPreferences.rulerOrigin = RulerOrigin.PAGE_ORIGIN;

    do

    {

    Try

    {

    ProcessFrames (activeDocument);

    }

    catch (Girard)

    {

    Alert ("the script encountered a situation that we don't know how to handle. "He received the error, says '" + Parker + "' in Main()"); "."

    }

    }

    While (false);

    activeDocument.viewPreferences.rulerOrigin = savedRulerOrigin;

    activeDocument.viewPreferences.horizontalMeasurementUnits = savedHorizontalMeasurementUnits;

    activeDocument.viewPreferences.verticalMeasurementUnits = savedVerticalMeasurementUnits;

    }

    catch (Girard)

    {

    Alert ("the script encountered a situation that we don't know how to handle. "He received the error, says '" + Parker + "' in Main()"); "."

    LogError ("Hand throw" + Girard);

    }

    }

    While (false);

    app.scriptPreferences.userInteractionLevel = savedUserInteractionLevel;

    / * / / / LogExit ("Main");

    }

    // ****************

    function ProcessFrames (doc)

    {

    / * / / / LogEntry ("ProcessFrames");

    var err;

    do

    {

    If (!.) (doc instanceof Document))

    {

    LogError ("ProcessFrames: doc should be a Document");

    break;

    }

    Try

    {

    var existingLayer = doc.layers.itemByName (kSizeLabelLayerName);

    existingLayer.id;

    existingLayer.remove ();

    }

    catch (err)

    {

    }

    If (kLabelNestedItems)

    {

    var pageItems = doc.allPageItems.slice (0);

    }

    on the other

    {

    var pageItems = CollectionToArray (doc.pageItems);

    }

    var frameReferences = [];

    for (var pageItemIdx = 0; pageItemIdx < pageItems.length; pageItemIdx ++)

    {

    do

    {

    var pageItem = pageItems [pageItemIdx];

    If (pageItem.itemLayer.name is kSizeLabelLayerName)

    {

    break;

    }

    var pageItem = ConvertToFrame (pageItem);

    If (instanceof TextFrame pageItem)

    {

    If (kDontLabelTextFrames)

    {

    break;

    }

    }

    ElseIf (pageItem graphic instanceof)

    {

    If (kDontLabelImageFrames)

    {

    break;

    }

    }

    on the other

    {

    If (kDontLabelOtherFrames)

    {

    break;

    }

    }

    If (pageItem.label.toLowerCase () is kIgnoreFrameLabel)

    {

    break;

    }

    var width = pageItem.geometricBounds [3] - pageItem.geometricBounds [1];

    var height = pageItem.geometricBounds [2] - pageItem.geometricBounds [0];

    If (width < kDontLabelBelowWidth)

    {

    break;

    }

    If (height, kDontLabelBelowHeight)

    {

    break;

    }

    frameReferences.push (pageItem);

    }

    While (false);

    }

    var sizeLabelLayer = doc.layers.add ({name: kSizeLabelLayerName});

    for (var pageItemIdx = 0; pageItemIdx < frameReferences.length; pageItemIdx ++)

    {

    Try

    {

    var pageItem = frameReferences [pageItemIdx];

    var width = pageItem.geometricBounds [3] - pageItem.geometricBounds [1];

    var height = pageItem.geometricBounds [2] - pageItem.geometricBounds [0];

    var labelItem = doc.textFrames.add (null, LocationOptions.BEFORE, GetOuterPageItem (pageItem));

    labelItem.itemLayer = sizeLabelLayer;

    var boxsquinch = width * height

    var boxpercent = (boxsquinch / spreadsquinch) * 100

    var roundpercent = Math.round (boxpercent)

    var labelText = "";

    If (kShowImageFileName)

    {

    var imageName = GetImageName (pageItem);

    If (imageName! = "")

    {

    labelText += imageName + kSeparatorBetweenNameAndSize;

    }

    }

    labelText += RoundString (height, kRoundToDecimals) + kSeparatorBetweenHeightAndWidth + RoundString(width, kRoundToDecimals) + kSeparatorAfterWidth + ' \r\n'+ roundpercent + '% ';

    labelItem.contents = labelText;

    xPos = pageItem.geometricBounds var [1];

    yPos = pageItem.geometricBounds var [0] + kLabelHeight;

    labelItem.geometricBounds is [Posy, xPos, yPos + kLabelHeight, xPos + kLabelWidth];.

    Try

    {

    labelItem.parentStory.characters.everyItem () .appliedCharacterStyle = doc.characterStyles.item (0);

    }

    catch (err)

    {

    }

    Try

    {

    labelItem.parentStory.paragraphs.everyItem () .appliedParagraphStyle = kLabelStyleName;

    }

    catch (err)

    {

    }

    Try

    {

    labelItem.appliedObjectStyle = doc.objectStyles.itemByName (kLabelObjectStyleName);

    }

    catch (err)

    {

    }

    }

    catch (err)

    {

    }

    }

    }

    While (false);

    / * / / / LogExit ("ProcessFrames");

    }

    // ****************

    function RoundString (numVal, decimal)

    {

    / * / / / LogEntry ("Round");

    var retVal = Math.round (numVal * Math.pow(10,decimals)) + "";

    retVal = retVal.substring(0,retVal.length-decimals) + "." + retVal.substring(retVal.length-decimals);

    / * / / / LogExit ("Round");

    Return retVal;

    }

    What do you mean?

    var myDoc = app.activeDocument;
    var mySpreads = myDoc.spreads;
    var myRectangles = myDoc.rectangles;
    var myImages = 0;
    for (var i = 0; i < mySpreads.length; i++) {
        var mySpreadWidth = 0;
        var mySpreadHeight = myDoc.documentPreferences.pageHeight;
        for (var j = 0; j < mySpreads[i].pages.length; j++) {
            mySpreadWidth += myDoc.documentPreferences.pageWidth;
            }
        var mySpreadArea = mySpreadWidth * mySpreadHeight;
        var myImages = mySpreads[i].rectangles;
        var myTotalImageArea = 0;
        var myIndividualImageArea = [];
        for (var j = 0; j < myImages.length; j++) {
            var myImageGeometricBounds = myImages[j].geometricBounds;
            var myImageWidth = myImageGeometricBounds[3] - myImageGeometricBounds[1];
            var myImageHeight = myImageGeometricBounds[2] - myImageGeometricBounds[0];
            myIndividualImageArea[j] = (myImageWidth * myImageHeight);
            myTotalImageArea += myIndividualImageArea[j];
            }
        for (var j = 0; j < myIndividualImageArea.length; j++) {
            alert("Image percentage of total images on spread " + (i + 1) + " = " + (myIndividualImageArea[j] * 100) /myTotalImageArea);
            }
       alert("Total image percentage on spread " + (i + 1) + " = " + myTotalImageArea);
       }
    
  • Create Adobe Muse Widget with images and the external JS file.

    Hello, I want to create widget that include all about 7-8 images and 1 JS file.

    I read the documentation, but I have a few questions.

    Is there any way to import images of widget (no link to them)?

    Y at - it means to import the folder 'images' with pictures on it and this folder to extract to which I have 'say' (for example level even where is the page or file in the folder root of the site)?

    Is there a way to include the JS file?

    In my opinion, that these things are possible, but with Adobe Muse themes.

    How to manipulate the page with the options for the widget?

    For example, in the options, you can choose between 2-3 options and the option to apply to the page.

    I want the option widget that can change 1 variable JS variable will be in the script that is added to the page (not external JS file). I know how to add this script to the page, but I don't know how to handle with the widget options. Here's another example, I have this:

    ...........

    < bodyEndHTML >

    <! [CDATA [< script type = "text/javascript" >]]

    $(function() {})

    var someVar = "somevalue1";

    });

    < /script >]] >

    < / bodyEndHTML >

    < / HTMLWidget >

    I want with option widget to manipulate this variable 'someVar' (its value), between the selected values.

    You work with html exported Muse,

    It would be a complete customization with form action, you can try to use the coding corner

    Thank you

    Sanjit

  • Why the debth bit of my different raw file image in my camera, Brigde and the opening in Photoshop?

    I have a full frame Nikon D700 12 megapixel camera that has a depth of 12 to 14 bits. I used to shoot images with the file format raw Nikon (NEF) with the parameter of color space to Adobe RGB (1998). When I select a picture to view the details of the metadata in Adobe Bridge, the number of bits is indicated as 16 and color as RGB. Open the image in Photoshop displays the detail long and narrow line down the near the bottom of the screen. It indicates that the color is 8 bits but still Adobe RGB (1998).

    Can someone explain please these fluctuations? It's always a NEF file, I want to talk to.

    Thank you.

    With Camera Raw open, you must set the color space and depth of Bit to open like in Photoshop. See image:

    Edit: In addition, a raw file contains raw data - no color profile embedded. At least is not all programs, with the exception of Nikon, will recognize.

    Benjamin

Maybe you are looking for