Image Processor doesn't launch

Hi, I'm using CS5 Bridge and Photoshop, and I can't get my Image Processor dialog box to launch in Photoshop when I go to  Tools>Photoshop>Image Processor in Bridge. Photoshop will launch but no dialog box appears. I have updated all my programs and reset the preferences but I am still experiencing this problem. Any help you guys could give would be greatly appreciated. Thanks!

Launch the Console application in any of the following ways:
☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
☞ Open LaunchPad. Click Utilities, then Console in the icon grid.
The title of the Console window should be All Messages. If it isn't, select
          SYSTEM LOG QUERIES ▹ All Messages
from the log list on the left. If you don't see that list, select
          View ▹ Show Log List
from the menu bar at the top of the screen. Click the Clear Display icon in the toolbar. Then take one of the actions that you're having trouble with. Select any messages that appear in the Console window. Copy them to the Clipboard by pressing the key combination command-C. Paste into a reply to this message by pressing command-V.
The log contains a vast amount of information, almost all of which is irrelevant to solving any particular problem. When posting a log extract, be selective. A few dozen lines are almost always more than enough.
Please don't indiscriminately dump thousands of lines from the log into this discussion.
Please don't post screenshots of log messages—post the text.
Some private information, such as your name, may appear in the log. Anonymize before posting.

Similar Messages

  • Image Capture - Doesn't Launch Mail

    Been using Image Capture for ever.... Always just works. Now it doesn't. Not much hood to get under.
    Set source: flatbed or Doc feed. pick .PDF Set Scan to: Mail - hit scan and the scanner scans.... but nothing happens. It used to open a new massage in Mail. Now nothing.
    Any suggestions?
    Thanks!

    Launch the Console application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad. Click Utilities, then Console in the icon grid.
    The title of the Console window should be All Messages. If it isn't, select
              SYSTEM LOG QUERIES ▹ All Messages
    from the log list on the left. If you don't see that list, select
              View ▹ Show Log List
    from the menu bar at the top of the screen. Click the Clear Display icon in the toolbar. Then take one of the actions that you're having trouble with. Select any messages that appear in the Console window. Copy them to the Clipboard by pressing the key combination command-C. Paste into a reply to this message by pressing command-V.
    The log contains a vast amount of information, almost all of which is irrelevant to solving any particular problem. When posting a log extract, be selective. A few dozen lines are almost always more than enough.
    Please don't indiscriminately dump thousands of lines from the log into this discussion.
    Please don't post screenshots of log messages—post the text.
    Some private information, such as your name, may appear in the log. Anonymize before posting.

  • Bridge to Photoshop Image Processor won't run

    I'm using Photoshop CS3 Extended - V 10.0.1 and Bridge V 2.1.1.9
    I'm trying to run some photos through Image Processor via Bridge. After selecting all of the photos, selecting Tools > Photoshop > Image Processor, Photoshop opens, but the Image Processor doesn't run.
    I've tried processing other photos in other folders and it works fine. Then I tried processing the problematic folder on a different computer with no luck. There just seems to be an issue with this group of photos.
    I check the information on the photos and they're not locked or anything. I'm not sure what else to do. Any ideas?

    Try run the Image Processor directly from Photoshop menu File->Scripting. See if you can select the folder and run the processing.
    What is the special with that folder? such as size, permission, special name or special file?

  • Image Processor error message

    Issue:
    On Mac 10.9.2, running Adobe CC, I attempt to convert a selection of PSD files using Image Processor through Bridge. I get an error stating "Sorry, I could not process the following files".
    Image Processor supports conversion from PSD files as far as I know. Why is this not working?
    I see on the forums that this error message sometimes comes up when you are using the "Run Action" function, but I am not using this.

    After a stunningly unhelpful chat session with Adobe Support, it seems that the issue stems from the fact that the PSD files were originally EPS.
    You see, I actually need to end up with TIFF files, but Image Processor doesn't accept EPS.
    So I thought I would have to manually go through and save each EPS file as a TIFF in Photoshop--but it doesn't even give me that option! Did some testing and this seems to be because the EPS files are in Duotone mode.
    I can only choose from Photoshop, Large Document Format, Photoshop EPS, Photoshop PDF, and Photoshop Raw.
    As a workaround, I decided to manually convert to PSD, thinking that then I could run them through Image Processor and get my TIFFs.
    But now Image Processor is rejecting the PSD files.
    What to do?

  • Using the Image Processor together with an action - original files won't get closed

    Hi,
    I just made an action to position my website's name at the bottom left of my photos and to use it then together with the  Image Processor.
    When I tried it out, I realized, that my whole pc slowed extremely down. Then I saw that the original files didn't get closed during the image processing process ...
    Then I made some tests and the result was, that the Image Processor doesn't close the original files if the action in use has more than 26 steps.
    Could someone please check out if its the same with his/her Photoshop? I use Photoshop CS6 on Windows 7.
    Thanks a lot!

    Hi,
    The problem is caused by your project not 'knowing' about the
    picture. Robohelp will automatically include all images that are
    embedded in HTML docs, but if they are only displayed via a link,
    they do not form part of the files list that is created in the
    resulting .HHP file.
    A remedy: to resolve this in the past, I've created a 'dummy
    page' that is not indexed or included in the TOC, and contains
    embeds of all of these pictures that aren't directly set in the
    HTML. Make sure it is included with the correct conditional build
    tags and recompile, you should find that the linked image now shows
    up in the CHM okay.

  • Batch - image processor

    Posting gives me error "m4", so I'll try to post it as a reply to this...

    Hi all, I have a problem.
    I need to save some -a lot, actually- psd files as multiple formats and sizes, such as jpg 15x15cm 300 dpi, or png 600x600px 72 dpi, and the batch function, running with an action that saves and crops every psd like I want, works very well.
    But the problem is that if I have a folder with many subfolders -an others within them-, batch is no longer useful since it doesn't -it does?- keep the folder/subfolders structure, as Image processor does. On the other hand, image processor doesn't let me choose any format I want, but only jpg, psd and tiff.

  • PS6 Image Processor

    Image Processor doesn't work with 16 bit images. Tried coverting an open image file and nothing happens. Tried to use from Bridge with same result.

    Strange, the script has not been changed since 2009 and works for me with 16bit files.
    It is the same script as what ships with Photoshop CS5

  • How do I fix an access rights error when launching Image Processor in Adobe Bridge CC?

    Often when I am working on files and want to batch process Jpegs for clients I get an error message from Image Processor.  It will state "I am unable to create a file in this folder.  Please check your access rights to this location ...."
    I have cleared cache and up'd my history levels.  I checked to make sure the files were not locked and read/write was enabled.  I am not sure why this error keeps occurring.  I am using Adobe Photoshop CC 2014 (2014.2.2 release) with Adobe Bridge CC (6.1.0.115)

    It's an endless circle.
    See if these instructions help: iTunes repeatedly prompts to authorize computer to play iTunes Store purchases

  • The Browse in Bridge option in PS CC 2014 doesn't launch Bridge, but instead opens the window of the Creative Cloud desktop app instead.  This behaviour is on both Mac and Windows.

    I recently installed all the of CC 2014 applications and noticed that in Photoshop CC 2014, when I choose the "Browse in Bridge" menu option it doesn't launch Bridge at all.  Instead it opens the Creative Cloud desktop application window instead.  I have the latest version of Bridge installed as well.  If I have Bridge running, the menu option also just opens the CC window and doesn't bring Bridge to the front either.  I have PS installed on both a Mac (10.9.3) and Windows (8.1) and the behaviour is the same.

    I only Run windows and my install of CC 2014 works correctly and launches Bridge CC.  Bridge CC was also updated to launch CC 2014 and not CC 14.2.1.
    Hers is my Photoshop CC 2014 help>System info...  You may want to compare your windows systems CC 2014 info to it.
    Adobe Photoshop Version: 2014.0.0 20140508.r.58 2014/05/08:23:59:59  x64
    Operating System: Windows 7 64-bit
    Version: 6.1 Service Pack 1
    System architecture: Intel CPU Family:6, Model:13, Stepping:7 with MMX, SSE Integer, SSE FP, SSE2, SSE3, SSE4.1, SSE4.2, HyperThreading
    Physical processor count: 12
    Logical processor count: 24
    Processor speed: 1995 MHz
    Built-in memory: 40886 MB
    Free memory: 35170 MB
    Memory available to Photoshop: 37118 MB
    Memory used by Photoshop: 90 %
    3D Multitone Printing: Disabled.
    Touch Gestures: Disabled.
    Windows 2x UI: Disabled.
    Image tile size: 1024K
    Image cache levels: 4
    Font Preview: Huge
    TextComposer: Latin
    Display: 1
    Display Bounds: top=0, left=0, bottom=1080, right=1920
    Display: 2
    Display Bounds: top=0, left=-1360, bottom=768, right=0
    OpenGL Drawing: Enabled.
    OpenGL Allow Old GPUs: Not Detected.
    OpenGL Drawing Mode: Advanced
    OpenGL Allow Normal Mode: True.
    OpenGL Allow Advanced Mode: True.
    AIFCoreInitialized=1
    AIFOGLInitialized=1
    OGLContextCreated=1
    glgpu[0].GLVersion="3.0"
    glgpu[0].GLMemoryMB=2048
    glgpu[0].GLName="Quadro 4000/PCIe/SSE2"
    glgpu[0].GLVendor="NVIDIA Corporation"
    glgpu[0].GLVendorID=4318
    glgpu[0].GLDriverVersion="9.18.13.3311"
    glgpu[0].GLRectTextureSize=16384
    glgpu[0].GLRenderer="Quadro 4000/PCIe/SSE2"
    glgpu[0].GLRendererID=1757
    glgpu[0].HasGLNPOTSupport=1
    glgpu[0].GLDriver="nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um"
    glgpu[0].GLDriverDate="20140429000000.000000-000"
    glgpu[0].CanCompileProgramGLSL=1
    glgpu[0].GLFrameBufferOK=1
    glgpu[0].glGetString[GL_SHADING_LANGUAGE_VERSION]="4.40 NVIDIA via Cg compiler"
    glgpu[0].glGetProgramivARB[GL_FRAGMENT_PROGRAM_ARB][GL_MAX_PROGRAM_INSTRUCTIONS_ARB]=[6553 6]
    glgpu[0].glGetIntegerv[GL_MAX_TEXTURE_UNITS]=[4]
    glgpu[0].glGetIntegerv[GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS]=[192]
    glgpu[0].glGetIntegerv[GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS]=[32]
    glgpu[0].glGetIntegerv[GL_MAX_TEXTURE_IMAGE_UNITS]=[32]
    glgpu[0].glGetIntegerv[GL_MAX_DRAW_BUFFERS]=[8]
    glgpu[0].glGetIntegerv[GL_MAX_VERTEX_UNIFORM_COMPONENTS]=[4096]
    glgpu[0].glGetIntegerv[GL_MAX_FRAGMENT_UNIFORM_COMPONENTS]=[2048]
    glgpu[0].glGetIntegerv[GL_MAX_VARYING_FLOATS]=[124]
    glgpu[0].glGetIntegerv[GL_MAX_VERTEX_ATTRIBS]=[16]
    glgpu[0].extension[AIF::OGL::GL_ARB_VERTEX_PROGRAM]=1
    glgpu[0].extension[AIF::OGL::GL_ARB_FRAGMENT_PROGRAM]=1
    glgpu[0].extension[AIF::OGL::GL_ARB_VERTEX_SHADER]=1
    glgpu[0].extension[AIF::OGL::GL_ARB_FRAGMENT_SHADER]=1
    glgpu[0].extension[AIF::OGL::GL_EXT_FRAMEBUFFER_OBJECT]=1
    glgpu[0].extension[AIF::OGL::GL_ARB_TEXTURE_RECTANGLE]=1
    glgpu[0].extension[AIF::OGL::GL_ARB_TEXTURE_FLOAT]=1
    glgpu[0].extension[AIF::OGL::GL_ARB_OCCLUSION_QUERY]=1
    glgpu[0].extension[AIF::OGL::GL_ARB_VERTEX_BUFFER_OBJECT]=1
    glgpu[0].extension[AIF::OGL::GL_ARB_SHADER_TEXTURE_LOD]=1
    clgpu[0].CLPlatformVersion="1.1"
    clgpu[0].CLDeviceVersion="1.1 CUDA"
    clgpu[0].CLMemoryMB=2048
    clgpu[0].CLName="Quadro 4000"
    clgpu[0].CLVendor="NVIDIA Corporation"
    clgpu[0].CLVendorID=4318
    clgpu[0].CLDriverVersion="333.11"
    clgpu[0].CUDASupported=1
    clgpu[0].CUDAVersion="6.0.1"
    clgpu[0].CLBandwidth=7.49454e+010
    clgpu[0].CLCompute=184.394
    License Type: Subscription
    Serial number: 96040035116912554961
    Application folder: C:\Program Files\Adobe\Adobe Photoshop CC 2014\
    Temporary file path: C:\Users\JOHNJM~1\AppData\Local\Temp\
    Photoshop scratch has async I/O enabled
    Scratch volume(s):
      F:\, 465.2G, 143.7G free
      C:\, 224.2G, 105.4G free
    Required Plug-ins folder: C:\Program Files\Adobe\Adobe Photoshop CC 2014\Required\Plug-Ins\
    Primary Plug-ins folder: C:\Program Files\Adobe\Adobe Photoshop CC 2014\Plug-ins\
    Installed components:
       A3DLIBS.dll   A3DLIB Dynamic Link Library   9.2.0.112  
       ACE.dll   ACE 2014/04/14-23:42:44   79.554120   79.554120
       adbeape.dll   Adobe APE 2013/02/04-09:52:32   0.1160850   0.1160850
       AdbePM.dll   PatchMatch 2014/04/23-10:46:55   79.554276   79.554276
       AdobeLinguistic.dll   Adobe Linguisitc Library   8.0.0  
       AdobeOwl.dll   Adobe Owl 2014/03/05-14:49:37   5.0.33   79.552883
       AdobePDFL.dll   PDFL 2014/03/04-00:39:42   79.510482   79.510482
       AdobePIP.dll   Adobe Product Improvement Program   7.2.1.3399  
       AdobeXMP.dll   Adobe XMP Core 2014/01/13-19:44:00   79.155772   79.155772
       AdobeXMPFiles.dll   Adobe XMP Files 2014/01/13-19:44:00   79.155772   79.155772
       AdobeXMPScript.dll   Adobe XMP Script 2014/01/13-19:44:00   79.155772   79.155772
       adobe_caps.dll   Adobe CAPS   8,0,0,7  
       AGM.dll   AGM 2014/04/14-23:42:44   79.554120   79.554120
       ahclient.dll    AdobeHelp Dynamic Link Library   1,8,0,31  
       amtlib.dll   AMTLib (64 Bit)   8.0.0.45 BuildVersion: 8.0; BuildDate: Fri Mar 28 2014 20:28:30)   1.000000
       ARE.dll   ARE 2014/04/14-23:42:44   79.554120   79.554120
       AXE8SharedExpat.dll   AXE8SharedExpat 2013/12/20-21:40:29   79.551013   79.551013
       AXEDOMCore.dll   AXEDOMCore 2013/12/20-21:40:29   79.551013   79.551013
       Bib.dll   BIB 2014/04/14-23:42:44   79.554120   79.554120
       BIBUtils.dll   BIBUtils 2014/04/14-23:42:44   79.554120   79.554120
       boost_date_time.dll   photoshopdva   8.0.0  
       boost_signals.dll   photoshopdva   8.0.0  
       boost_system.dll   photoshopdva   8.0.0  
       boost_threads.dll   photoshopdva   8.0.0  
       cg.dll   NVIDIA Cg Runtime   3.0.00007  
       cgGL.dll   NVIDIA Cg Runtime   3.0.00007  
       CIT.dll   Adobe CIT   2.2.6.32411   2.2.6.32411
       CITThreading.dll   Adobe CITThreading   2.2.6.32411   2.2.6.32411
       CoolType.dll   CoolType 2014/04/14-23:42:44   79.554120   79.554120
       dvaaudiodevice.dll   photoshopdva   8.0.0  
       dvacore.dll   photoshopdva   8.0.0  
       dvamarshal.dll   photoshopdva   8.0.0  
       dvamediatypes.dll   photoshopdva   8.0.0  
       dvametadata.dll   photoshopdva   8.0.0  
       dvametadataapi.dll   photoshopdva   8.0.0  
       dvametadataui.dll   photoshopdva   8.0.0  
       dvaplayer.dll   photoshopdva   8.0.0  
       dvatransport.dll   photoshopdva   8.0.0  
       dvaui.dll   photoshopdva   8.0.0  
       dvaunittesting.dll   photoshopdva   8.0.0  
       dynamiclink.dll   photoshopdva   8.0.0  
       ExtendScript.dll   ExtendScript 2014/01/21-23:58:55   79.551519   79.551519
       icucnv40.dll   International Components for Unicode 2013/02/25-15:59:15    Build gtlib_4.0.19090  
       icudt40.dll   International Components for Unicode 2013/02/25-15:59:15    Build gtlib_4.0.19090  
       imslib.dll   IMSLib DLL   7.0.0.145  
       JP2KLib.dll   JP2KLib 2014/03/12-08:53:44   79.252744   79.252744
       libifcoremd.dll   Intel(r) Visual Fortran Compiler   10.0 (Update A)  
       libiomp5md.dll   Intel(R) OpenMP* Runtime Library   5.0  
       libmmd.dll   Intel(r) C Compiler, Intel(r) C++ Compiler, Intel(r) Fortran Compiler   12.0  
       LogSession.dll   LogSession   7.2.1.3399  
       mediacoreif.dll   photoshopdva   8.0.0  
       MPS.dll   MPS 2014/03/25-23:41:34   79.553444   79.553444
       pdfsettings.dll   Adobe PDFSettings   1.04  
       Photoshop.dll   Adobe Photoshop CC 2014   15.0  
       Plugin.dll   Adobe Photoshop CC 2014   15.0  
       PlugPlugExternalObject.dll   Adobe(R) CEP PlugPlugExternalObject Standard Dll (64 bit)   5.0.0  
       PlugPlugOwl.dll   Adobe(R) CSXS PlugPlugOwl Standard Dll (64 bit)   5.0.0.74  
       PSArt.dll   Adobe Photoshop CC 2014   15.0  
       PSViews.dll   Adobe Photoshop CC 2014   15.0  
       SCCore.dll   ScCore 2014/01/21-23:58:55   79.551519   79.551519
       ScriptUIFlex.dll   ScriptUIFlex 2014/01/20-22:42:05   79.550992   79.550992
       svml_dispmd.dll   Intel(r) C Compiler, Intel(r) C++ Compiler, Intel(r) Fortran Compiler   12.0  
       tbb.dll   Intel(R) Threading Building Blocks for Windows   4, 2, 2013, 1114  
       tbbmalloc.dll   Intel(R) Threading Building Blocks for Windows   4, 2, 2013, 1114  
       TfFontMgr.dll   FontMgr   9.3.0.113  
       TfKernel.dll   Kernel   9.3.0.113  
       TFKGEOM.dll   Kernel Geom   9.3.0.113  
       TFUGEOM.dll   Adobe, UGeom©   9.3.0.113  
       updaternotifications.dll   Adobe Updater Notifications Library   7.0.1.102 (BuildVersion: 1.0; BuildDate: BUILDDATETIME)   7.0.1.102
       VulcanControl.dll   Vulcan Application Control Library   5.0.0.82  
       VulcanMessage5.dll   Vulcan Message Library   5.0.0.82  
       WRServices.dll   WRServices Fri Mar 07 2014 15:33:10   Build 0.20204   0.20204
       wu3d.dll   U3D Writer   9.3.0.113  
    Required plug-ins:
       3D Studio 15.0 (2014.0.0 x001)
       Accented Edges 15.0
       Adaptive Wide Angle 15.0
       Angled Strokes 15.0
       Average 15.0 (2014.0.0 x001)
       Bas Relief 15.0
       BMP 15.0
       Camera Raw 8.5
       Camera Raw Filter 8.5
       Chalk & Charcoal 15.0
       Charcoal 15.0
       Chrome 15.0
       Cineon 15.0 (2014.0.0 x001)
       Clouds 15.0 (2014.0.0 x001)
       Collada 15.0 (2014.0.0 x001)
       Color Halftone 15.0
       Colored Pencil 15.0
       CompuServe GIF 15.0
       Conté Crayon 15.0
       Craquelure 15.0
       Crop and Straighten Photos 15.0 (2014.0.0 x001)
       Crop and Straighten Photos Filter 15.0
       Crosshatch 15.0
       Crystallize 15.0
       Cutout 15.0
       Dark Strokes 15.0
       De-Interlace 15.0
       Dicom 15.0
       Difference Clouds 15.0 (2014.0.0 x001)
       Diffuse Glow 15.0
       Displace 15.0
       Dry Brush 15.0
       Eazel Acquire 15.0 (2014.0.0 x001)
       Embed Watermark 4.0
       Entropy 15.0 (2014.0.0 x001)
       Export Color Lookup NO VERSION
       Extrude 15.0
       FastCore Routines 15.0 (2014.0.0 x001)
       Fibers 15.0
       Film Grain 15.0
       Filter Gallery 15.0
       Flash 3D 15.0 (2014.0.0 x001)
       Fresco 15.0
       Glass 15.0
       Glowing Edges 15.0
       Google Earth 4 15.0 (2014.0.0 x001)
       Grain 15.0
       Graphic Pen 15.0
       Halftone Pattern 15.0
       HDRMergeUI 15.0
       IFF Format 15.0
       Ink Outlines 15.0
       JPEG 2000 15.0
       Kurtosis 15.0 (2014.0.0 x001)
       Lens Blur 15.0
       Lens Correction 15.0
       Lens Flare 15.0
       Liquify 15.0
       Matlab Operation 15.0 (2014.0.0 x001)
       Maximum 15.0 (2014.0.0 x001)
       Mean 15.0 (2014.0.0 x001)
       Measurement Core 15.0 (2014.0.0 x001)
       Median 15.0 (2014.0.0 x001)
       Mezzotint 15.0
       Minimum 15.0 (2014.0.0 x001)
       MMXCore Routines 15.0 (2014.0.0 x001)
       Mosaic Tiles 15.0
       Multiprocessor Support 15.0 (2014.0.0 x001)
       Neon Glow 15.0
       Note Paper 15.0
       NTSC Colors 15.0 (2014.0.0 x001)
       Ocean Ripple 15.0
       OpenEXR 15.0
       Paint Daubs 15.0
       Palette Knife 15.0
       Patchwork 15.0
       Paths to Illustrator 15.0
       PCX 15.0 (2014.0.0 x001)
       Photocopy 15.0
       Photoshop 3D Engine 15.0 (2014.0.0 x001)
       Photoshop Touch 14.0
       Picture Package Filter 15.0 (2014.0.0 x001)
       Pinch 15.0
       Pixar 15.0 (2014.0.0 x001)
       Plaster 15.0
       Plastic Wrap 15.0
       PNG 15.0
       Pointillize 15.0
       Polar Coordinates 15.0
       Portable Bit Map 15.0 (2014.0.0 x001)
       Poster Edges 15.0
       Radial Blur 15.0
       Radiance 15.0 (2014.0.0 x001)
       Range 15.0 (2014.0.0 x001)
       Read Watermark 4.0
       Render Color Lookup Grid NO VERSION
       Reticulation 15.0
       Ripple 15.0
       Rough Pastels 15.0
       Save for Web 15.0
       ScriptingSupport 15.0
       Shake Reduction 15.0
       Shear 15.0
       Skewness 15.0 (2014.0.0 x001)
       Smart Blur 15.0
       Smudge Stick 15.0
       Solarize 15.0 (2014.0.0 x001)
       Spatter 15.0
       Spherize 15.0
       Sponge 15.0
       Sprayed Strokes 15.0
       Stained Glass 15.0
       Stamp 15.0
       Standard Deviation 15.0 (2014.0.0 x001)
       STL 15.0 (2014.0.0 x001)
       Sumi-e 15.0
       Summation 15.0 (2014.0.0 x001)
       Targa 15.0
       Texturizer 15.0
       Tiles 15.0
       Torn Edges 15.0
       Twirl 15.0
       Underpainting 15.0
       Vanishing Point 15.0
       Variance 15.0 (2014.0.0 x001)
       Water Paper 15.0
       Watercolor 15.0
       Wave 15.0
       Wavefront|OBJ 15.0 (2014.0.0 x001)
       WIA Support 15.0 (2014.0.0 x001)
       Wind 15.0
       Wireless Bitmap 15.0 (2014.0.0 x001)
       ZigZag 15.0
    Optional and third party plug-ins:
       CUR (Windows Cursor) NO VERSION
       GREYCstoration NO VERSION
       ICO (Windows Icon) NO VERSION
       Reduce Noise 7.0.0.0
       ScriptListener 13.0
       StarFilter Pro 3 3.0.3.0
       SuperPNG 2.0
    Plug-ins that failed to load: NONE
    Flash:
       Adobe Kuler
    Installed TWAIN devices: NONE

  • Photoshop Cs 4 Image Processor

    Unable to use image processor feature in CS 4. Error message indicates "Cannot find javascript plug-in. This feature was working just fine until a few weeks ago. Nothing unusual has changed. Thanks

    the folder must have moved or something...
    here it is for now copy it to ... applications/adobe photoshop cs4/presets/scripts : and it will be a good time to see if that folder is even there.
    Regards
    G
    // (c) Copyright 2006-2007.  Adobe Systems, Incorporated.  All rights reserved.
    // Photomerge in ExtendScript.
    // Translated from the original C++ automation & filter plugins
    // John Peterson, Adobe Systems, 2006
    // Adobe Patent or Adobe Patent Pending Invention Included Within this File
    @@@BUILDINFO@@@ Photomerge.jsx 3.0.0.1
    // BEGIN__HARVEST_EXCEPTION_ZSTRING
    <javascriptresource>
    <name>$$$/JavaScripts/Photomerge/Menu=Photomerge...</name>
    <about>$$$/JavaScripts/Photomerge/About=Photomerge^r^rCopyright 2006-2008 Adobe Systems Incorporated. All rights reserved.^r^rCombines several photographs into one continuous image.</about>
    <menu>automate</menu>
    </javascriptresource>
    // END__HARVEST_EXCEPTION_ZSTRING
    // on localized builds we pull the $$$/Strings from a .dat file
    $.localize = true;
    // Put header files in a "Stack Scripts Only" folder.  The "...Only" tells
    // PS not to place it in the menu.  For that reason, we do -not- localize that
    // portion of the folder name.
    var g_StackScriptFolderPath = app.path + "/"+ localize("$$$/ScriptingSupport/InstalledScripts=Presets/Scripts") + "/"
                                            + localize("$$$/Private/Exposuremerge/StackScriptOnly=Stack Scripts Only/");
    $.evalFile(g_StackScriptFolderPath + "LatteUI.jsx");
    $.evalFile(g_StackScriptFolderPath + "StackSupport.jsx");
    $.evalFile(g_StackScriptFolderPath + "CreateImageStack.jsx");
    $.evalFile(g_StackScriptFolderPath + "Geometry.jsx");
    $.evalFile(g_StackScriptFolderPath + "PolyClip.jsx");
    // debug level: 0-2 (0:disable, 1:break on error, 2:break at beginning)
    // Must leave at zero, otherwise trapping gFileFromBridge fails on QA's debug builds.
    $.level = 0; // (Window.version.search("d") != -1) ? 1 : 0;
    // debugger; // launch debugger on next line
    if (typeof(PMDebug) == 'undefined')
        var PMDebug = false;
    // photomerge routines
    // Debug - write the trapezoid in Matlab format
    function dumpTrap( name, corners )
        var i;
        if (! PMDebug) return;
        $.write( name + "= [" );
        for (i in corners)
            $.write( ((i > 0) ? "; " : "" ) + corners[i].fX + " " + corners[i].fY );
        $.writeln( "];");
    StackElement.prototype.dumpMLCorners = function()
        // Weed out file suffix (chokes matlab)
        dumpTrap( this.fName.match(/([^.]+)/)[1], this.fCorners );
    // Set the fCorners of the layer to the bounds of the Photoshop layer.
    StackElement.prototype.setCornersToLayerBounds = function( stackDoc )
        if (typeof(stackDoc) == "undefined")
            stackDoc = app.activeDocument;
        var bounds = stackDoc.layers[this.fName].bounds;
        this.fCorners = new Array();
        this.fCorners[0] = new TPoint( bounds[0].as("px"), bounds[1].as("px") );
        this.fCorners[2] = new TPoint( bounds[2].as("px"), bounds[3].as("px") );
        this.fCorners[1] = new TPoint( this.fCorners[2].fX, this.fCorners[0].fY );
        this.fCorners[3] = new TPoint( this.fCorners[0].fX, this.fCorners[2].fY );
    // Add the corner data to the string of per-stackElement information
    // that gets passed to the filter plugin
    StackElement.prototype.addPieceData = function()
        if (typeof(this.fCorners) != "undefined")
            // Add corners in place of trailing '\n'
            this.fString = this.fString.slice(0,-1) + "fCorners=";
            for (j = 0; j < 4; j++)
                this.fString += " " + this.fCorners[j].fX.toString() + " " + this.fCorners[j].fY.toString();
            this.fString += "\t";
            if (typeof(this.fScale) != "undefined")
                this.fString += ("fScale=" + this.fScale.toString() + "\t");
            if ((typeof(this.fConnectedTo) != "undefined") && this.fConnectedTo)
                this.fString += "fConnectedTo=" + this.fConnectedTo.fLayerID + "\t";
            if (typeof(this.fLayerID) != "undefined")
                this.fString += "fLayerID=" + this.fLayerID.toString() + "\t";
            this.fString += "\n";
        else
            debugger;    // Corner data missing!
    StackElement.prototype.overlapArea = function( other )
        if (other == this)
            return TPoint.polygonArea( this.fCorners );
        var overlapBounds = TRect.intersection( this.fBoundsCache, other.fBoundsCache );
        if (overlapBounds.isEmpty())
            return 0.0;
        var clipPoly = TPoint.intersectConvexPolygons( this.fCorners, other.fCorners );
        if (! clipPoly)
            return 0.0;
        else return TPoint.polygonArea( clipPoly );
    // Find the points where the two quadrilaterals intersect (yes, eight is a theoretical max)
    // Note situations where one piece intersects the same edge twice - special
    // case handled by SoftEdgeBlend
    StackElement.prototype.findQuadIntersections = function( other, intersections )
        var i, j;
        var curIntersections, numIntersections = 0;
        var innerEdgeIntersections = [ 0, 0, 0, 0 ];
        var outerEdgeIntersections = [ 0, 0, 0, 0 ];
        var thisEdge = false;
        var otherEdge = false;
        for (i = 0; i < 4; i++)
            var eb0 = other.fCorners[i];
            var eb1 = other.fCorners[(i + 1) > 3 ? 0 : i + 1];
            curIntersections = numIntersections;
            for (j = 0; j < 4; j++)
                var ed0 = this.fCorners[j];
                var ed1 = this.fCorners[(j + 1) > 3 ? 0 : j + 1];
                var cross = TPoint.lineSegmentIntersect( eb0, eb1, ed0, ed1 );
                if (cross != TPoint.kInfinite)
                    intersections[numIntersections++] = cross;
                    innerEdgeIntersections[j]++;
            outerEdgeIntersections[i] = numIntersections - curIntersections;
        if (numIntersections == 2)
            for (i = 0; i < 4; i++)
                if (innerEdgeIntersections[i] == 2) thisEdge = true;
                if (outerEdgeIntersections[i] == 2) otherEdge = true;
        return {"numIntersections":numIntersections, "thisEdge":thisEdge, "otherEdge":otherEdge};
    // Look for a point of this that's inside the corners of other.
    StackElement.prototype.findSingleInsidePoint = function( other )
        var i;
        var result = new Object();
        result.numFound = 0;
        for (i = 0; i < 4; i++)
            if (this.fCorners[i].pointInQuad( other.fCorners ))
                result.numFound++;
                result.insidePt = this.fCorners[i];
        return result;
    // "Adobe patent application tracking # B349, entitled 'Method and apparatus for Layer-based Panorama Adjustment and Editing', inventor: John Peterson"
    // Because we're dealing with quads, we can't use the simple scheme
    // to generate blend rects that the rectangles use - black stuff
    // from the rects will seep in. So instead, we use various heuristics to
    // figure out how the quads themselves intersect.  This isn't too hard
    // when there's just two intersection points (usual case), but there are
    // some pathological cases where there are many more intersections (the octogon
    // from one square 45 deg. off from another is the classic example).          
    StackElement.prototype.softEdgeBlend = function( other, blendRad )
        var i, j;
        var intersections = new Array();    // Worst case is a square inside a 45 degree rot square
        // If there's no distortion, do the blend strictly on the rectangles
    /*    if ((!IsQuadMapped() && !other->IsQuadMapped())
            || (IsRectilinear() && other->IsRectilinear()))
            Assert_( other->fWarpedRaster );
            fWarpedRaster->SoftEdgeBlendRasters( *(other->fWarpedRaster), blendRad );
            return;
        var bounds = this.getBounds();
        // Find the points where the two quadrilaterals intersect
        var intResult = this.findQuadIntersections( other, intersections );
        var numIntersections = intResult.numIntersections;
        var thisEdgeTwice = intResult.thisEdge;
        var otherEdgeTwice = intResult.otherEdge;
        var thisInsidePt = this.findSingleInsidePoint( other );
        var otherInsidePt = other.findSingleInsidePoint( this );
        // If quads don't overlap, just bail
        if (numIntersections == 0)
            return;
        // Handle cases where just one point overlaps the other piece
        var insidePoint;
        if (otherEdgeTwice || ((numIntersections == 2) && (thisInsidePt.numFound == 1)))
            insidePoint = thisInsidePt.insidePt;
            this.makeBlendTrapezoid( intersections[0], intersections[1], insidePoint, blendRad, false );
            return;
        if (thisEdgeTwice /*|| ((numIntersections == 2) && (otherInsidePt.numFound == 1))*/)
            insidePoint = otherInsidePt.insidePt;
            this.makeBlendTrapezoid( intersections[0], intersections[1], insidePoint, blendRad, false );
            return;
        // ...More than two corners overlap, apply heuristics to find reasonable blending
        $.bp( numIntersections > 8 );
        // If we got more than two points, pick the two furthest apart
        if (numIntersections > 2)
            var max0, max1;
            var maxDist = -1.0;
            for (i = 0; i < numIntersections - 1; i++)
                for (j = i + 1; j < numIntersections; j++)
                    var dist = (intersections[i] - intersections[j]).vectorLength();
                    if (dist > maxDist)
                        max0 = intersections[i];
                        max1 = intersections[j];
                        maxDist = dist;
            $.bp( maxDist <= -1.0 );
            intersections[0] = max0;
            intersections[1] = max1;
            numIntersections = 2;
        TPoint.clipLineToRect( bounds, intersections[0], intersections[1] );
        // The point furthest away from the cut line on the "other" image
        // is the one that we blend toward (the "dark" corner).
        var maxPoint = 0, maxDist = -1;
        for (i = 0; i < 4; i++)
            var dist = Math.abs( other.fCorners[i].distanceToLine( intersections[0], intersections[1] ) );
            if (dist > maxDist)
                maxDist = dist;
                maxPoint = i;
        this.makeBlendTrapezoid( intersections[0], intersections[1], other.fCorners[maxPoint], blendRad, true );
    // "Adobe patent application tracking # B349, entitled 'Method and apparatus for Layer-based Panorama Adjustment and Editing', inventor: John Peterson"
    // Create a layer mask that fades out from the edge0,edge1 cutline towards "insidePt"
    // If two points are inside, construct the mask fade from the edge of the image.
    //                       insidePt
    //             |            *           |
    //             |           / \          |
    //             |          /   \         |
    // insetLine-> |       +-/-----\-+      |  --
    //             |       |/       \|      |   | radius
    // baseLine->  +-------*---------*------+  --
    //                    /edge0      \edge1
    StackElement.prototype.makeBlendTrapezoid = function( edge0, edge1, insidePt, radius, useCorners )
        function sgn(x) { if (x < 0) return -1; if (x > 0) return 1; return 0; }
        function wrap4(i, next)
            i += next;
            if (i > 3) return i % 4;
            if (i < 0) return 3;
            return i;
        // Create a layer mask
        selectOneLayer( app.activeDocument, this.fName );
    //    app.activeDocument.activeLayer = app.activeDocument.layers[this.fName];    // Broken if multiple layers selected.
        createLayerMask();    // Does nothing if the layer already has a mask
        // Create vector perpendicular to edge towards insidePt
        var edgeDir = edge1 - edge0;
        var blendDir = new TPoint( -edgeDir.fY, edgeDir.fX );
        blendDir /= blendDir.vectorLength();    // Make unit length
        // Make a polygonal selection covering the area
        var dist = insidePt.distanceToLine( edge0, edge1 );
        var blendOffset = blendDir * dist;
        var blendBox;
        if (! useCorners)
            blendBox = [edge0, edge0+blendOffset, edge1+blendOffset, edge1, edge0];
        else
            // If the cutline slices across the image (two points on each side), then
            //        - Look for the edge edge0 is on
            //        - Figure out which corner is on the same side as "insdePt"
            //        - Construct the blendBox from that.
            var i, nextPtInd;
            for (i = 0; i < 4; i++)
                if (edge0.distanceToLine( this.fCorners[i], this.fCorners[wrap4(i,1)] ) < 0.0001 )
                    if (this.fCorners[i].sideOf( edge0, edge1 ) == sgn( dist ))
                        nextPtInd = -1;
                    else
                        nextPtInd = 1;
                    blendBox = new Array();
                    blendBox[0] = edge0;
                    blendBox[1] = (nextPtInd < 0) ? this.fCorners[i] : this.fCorners[i+1];
                    blendBox[2] = (nextPtInd < 0) ? this.fCorners[wrap4(i, -1)] : this.fCorners[wrap4(i, 2)];
                    blendBox[3] = edge1;
                    break;
            $.bp( i == 4 );    // Never found edge0?
        createPolygonSelection( blendBox );
        // Fill it.
        var midPoint = (edge0 + edge1) * 0.5;
        gradientFillLayerMask( midPoint, midPoint + blendDir * radius * sgn(dist) );
        app.activeDocument.selection.deselect();
    // Photomerge base class
    const kPhotomergeAdvancedBlendingFlag = app.stringIDToTypeID( "PhotomergeAdvancedBlendingFlag" );  
    photomerge = new ImageStackCreator( localize("$$$/AdobePlugin/Shared/Photomerge/Process/Name=Photomerge"),
                                              localize('$$$/AdobePlugin/Shared/Photomerge/Auto/untitled=Untitled_Panorama' ), null );
    // For now, alignment is turned OFF, because we want to
    // invoke it independantly.             
    photomerge.useAlignment            = false;    // We do the alignment, not PS
    photomerge.hideAlignment        = true;
    photomerge.mustBeSameSize        = false;
    photomerge.mustBeUnmodifiedRaw = false;
    photomerge.mustNotBe32Bit        = ! app.featureEnabled(localize("$$$/private/32BitLayersFeature=32-Bit Layers"));
    photomerge.radioButtons = ["_LOauto", "_LOperspective", "_LOcylindrical", "_LOspherical", "_LOcollage", "_LOnormal", "_LOinteractive"];
    photomerge.interactiveFlag        = false;
    photomerge.alignmentKey            = "Auto";    // Defaults to perspective
    photomerge.compositionFile        = null;
    photomerge.advancedBlending        = true;
    photomerge.lensCorrection        = false;
    photomerge.removeVignette        = false;
    try {
    // We want to steer people to the advanced blending option,
    // so have it be on by default, rather than sticky.
    //    var desc = app.getCustomOptions("PhotomergeFlags001");
    //    photomerge.advancedBlending = desc.getBoolean( kPhotomergeAdvancedBlendingFlag );
    catch (e)
    // Get the bounds of all of the stackElements.
    photomerge.getBounds = function()
        var i;
        for (i in this.stackElements)
            if (i == 0)
                this.fBounds = this.stackElements[i].getBounds();
            else
                this.fBounds.extendTo( this.stackElements[i].getBounds() );
        return this.fBounds;
    // Align selected layers by content (uses SIFT registration in Photoshop core)
    // This just returns the alignment data, it does not actually transform the layers
    // unless doTransform is true
    photomerge.getAlignmentInfo = function( stackDoc, doTransform )
        selectAllLayers(stackDoc, 1);
        const kMargin = 10;
        function offsetGroup( delta, group )
            group.bounds.offset( delta );
            var k;
            for (k = 0; k < group.layers.length; ++k)
                group.layers[k].offset( delta );
                if (doTransform)
                    selectOneLayer( stackDoc, group.layers[k].fName );
                    // Translate gets broken when document DPI isn't 72 DPI...(PR 1417264)
    //                activeDocument.activeLayer.translate( UnitValue( delta.fX, "px" ), UnitValue( delta.fY, "px" ) );   
                    translateActiveLayer( delta.fX, delta.fY );
        var i, j, alignInfo;
        var alignmentFlags = [];
        if (this.lensCorrection) alignmentFlags.push(kradialDistortStr);
        if (this.removeVignette) alignmentFlags.push(kvignetteStr);
        alignInfo = getActiveDocAlignmentInfo( this.alignmentKey, doTransform, alignmentFlags );
        // If the alignment fails completely, fake up a plan B...
        // For now, just set the images side by side.
        if (! alignInfo)
            alert(localize("$$$/AdobePlugin/Shared/Photomerge/alignbad=Some images could not be automatically aligned"));
            var xpos = 0;
            for (i in this.stackElements)
                this.stackElements[i].setCornersToSize();
                this.stackElements[i].offset( new TPoint( xpos, 0 ) );
                xpos += this.stackElements[i].getBounds().getWidth() + kMargin;
            this.fGroups = null;
        else
            var layerList = alignInfo.layerInfo;
            this.fGroups = new Array();
            for (i = 0; i < layerList.length; ++i)
                // Note we depend on stackElement's order matching
                // the document's sheet list!
                var curGroup = layerList[i].groupNum;
                if (!doTransform && (layerList[i].corners.length > 0))
                    this.stackElements[i].fCorners = layerList[i].corners;
                else
                    this.stackElements[i].setCornersToLayerBounds( stackDoc );
                this.stackElements[i].fAlignGroup = curGroup;
                this.stackElements[i].fBaseFlag = layerList[i].baseFlag;
                if (typeof(this.fGroups[curGroup]) == "undefined")
                    this.fGroups[curGroup] = new Object();
                    this.fGroups[curGroup].hasCorners = layerList[i].corners.length > 0;
                    this.fGroups[curGroup].bounds = this.stackElements[i].getBounds();
                    this.fGroups[curGroup].layers = new Array();
                    this.fGroups[curGroup].xformType = layerList[i].xformType;
                else
                    this.fGroups[curGroup].bounds.extendTo( this.stackElements[i].getBounds() );
                this.fGroups[curGroup].layers.push( this.stackElements[i] );
            // Now move the groups into  place
            // Note carefully: if the corners were given, then the group is already
            // transformed into the proper spot, and we just need to move the corners to
            // match.  So shut off moving the layer pixels around from here on out.
            offsetGroup( -this.fGroups[0].bounds.getTopLeft(), this.fGroups[0] );
            for (i = 1; i < alignInfo.numGroups; ++i)
                var spacing = Math.round(this.fGroups[i-1].bounds.getHeight() / 10.0);
                offsetGroup( -this.fGroups[i].bounds.getTopLeft() + new TPoint(0, spacing + Math.round(this.fGroups[i-1].bounds.fBottom)),
                               this.fGroups[i] );
        this.getBounds();
    // The original Photomerge plugin needs to have the "connectivity" of the
    // pieces when in perspective mode, i.e., a pieces distortion is based
    // on the distortion of the one it overlaps most.  This takes the
    // "base" piece information from the PS core and uses overlap area to
    // determine this.
    photomerge.setupConnectivity = function()
        var i;
        // See if stackElem is connected to the "base".  If "without"
        // is given, then the path to the base must not use "without"
        function isConnectedToBase( stackElem, without, dbg_count )
            if (typeof(dbg_count) == "undefined")
                dbg_count = 0;
            if (typeof(without) == "undefined")
                without = null;
            $.bp( dbg_count > 150 );    // oops, got stuck in a loop...
            if (stackElem == null)
                return false;
            if (stackElem == without)
                return false;
            if (stackElem.fConnectedTo == stackElem)
                return true;        // Already at base
            return isConnectedToBase( stackElem.fConnectedTo, without, dbg_count + 1 );
        // Initialize
        for (i in this.stackElements)
            this.stackElements[i].fBoundsCache = this.stackElements[i].getBounds();
            this.stackElements[i].fLayerID = i;
            // Bases connect to themselves.
            this.stackElements[i].fConnectedTo = this.stackElements[i].fBaseFlag ? this.stackElements[i] : null;
            this.stackElements[i].fNeighborOverlap = 0;
        // Create a connection table based on the overlap of the pieces
        var g, i, j, baseInd = -1;
        if (this.fGroups)
            for (g in this.fGroups)
                var group = this.fGroups[g];
                var connections = new Array();
                var numLayers = group.layers.length;
                // Ignore orphan images
                if (numLayers < 2)
                    group.layers[0].fBaseFlag = false;
                    group.layers[0].fConnectedTo = null;
                    continue;
                // If there's no perspective, there's no connections ("0" is kProjective in UAlignment.h)
                if (group.xformType != 0)
                    for (i = 0; i < numLayers; ++i)
                        group.layers[i].fBaseFlag = false;
                        group.layers[i].fConnectedTo = group.layers[i];
                    continue;
                for (i = 0; i < numLayers; ++i)
                    if (group.layers[i].fBaseFlag)
                        baseInd = i;
                    connections[i] = new Array();
                    group.layers[i].fGroupIndex = i;
                    if (i > 0)
                        for (j = 0; j < i; ++j)
                            connections[i][j] = group.layers[i].overlapArea( group.layers[j] );
                            connections[j][i] = connections[i][j];    // table is symentric
                $.bp( baseInd == -1 );    // Never found the base?
                // Debug - dump the connection table
        /*        for (i = 0; i < numLayers; ++i)
                    var s = "";
                    for (j = 0; j < numLayers; ++j)
                        s += ", " + Math.floor(connections[i][j]);
                    $.writeln(s);
                // Connect everything to the base that's connected.
                for (i = 0; i < numLayers; ++i)
                    if ((i != baseInd) && (connections[baseInd][i] > 0))
                        group.layers[i].fConnectedTo = group.layers[baseInd];
                        group.layers[i].fNeighborOverlap = connections[baseInd][i];
                // Walk the cconnectivity table and make sure everything is
                // "optimally" connected.
                var changes = false;
                do {
                    changes = false;
                    for (i = 0; i < numLayers; ++i)
                        if (i != baseInd)
                            var curLayer = group.layers[i];
                            for (j = 0; j < numLayers; ++j)
                                if (((j != baseInd) && (j != i))
                                    && (((connections[i][j] > curLayer.fNeighborOverlap)
                                            && isConnectedToBase( group.layers[j], curLayer ))))
                                    curLayer.fConnectedTo = group.layers[j];
                                    curLayer.fNeighborOverlap = connections[i][j];
                                    changes = true;
                } while (changes);
        //        for (i = 0; i < numLayers; ++i)
        //            $.writeln( group.layers[i].fName + " is connected to " + (group.layers[i].fConnectedTo ? group.layers[i].fConnectedTo.fName : "??") );
    photomerge.offsetStack = function( delta )
        for (i in this.stackElements)
            this.stackElements[i].offset( delta );
        this.fBounds.offset( delta );
    photomerge.scaleStack = function( s )
        for (i in this.stackElements)
            this.stackElements[i].scale( s );
        this.getBounds();
    // This gets executed before a filter plugin is invoked.  "desc"
    // allows passing parameters to the filter.
    photomerge.customPluginArguments = function( desc )
        var f = new File(this.stackElements[0].fFullName);
        var path = File.encode( f.parent.fsName ) + (File.fs == "Windows" ? "\\" : "/");
        desc.putString( app.charIDToTypeID('PMfp'), path );
        if (this.compositionFile)
            desc.putString( app.charIDToTypeID('PMrf'), this.compositionFile.fsName );
            desc.putString( app.charIDToTypeID('PMcf'), File.encode( this.compositionFile.fsName ) );
    photomerge.callInteractivePlugin = function( stackDoc )
        // Scale the results to fit the screen
    /*        var scaleFactor = 1.0, screenSize = primaryScreenDimensions() * 0.75;
        if (this.fBounds.getHeight() > this.fBounds.getWidth())
            if (this.fBounds.getHeight() > screenSize.fY)
                scaleFactor = screenSize.fY / this.fBounds.getHeight();
        else
            if (this.fBounds.getWidth() > screenSize.fX)
                scaleFactor = screenSize.fX / this.fBounds.getWidth();
        const kMaxPieceSize = 1024;        // Must match value in PhotomergeUI.cpp
        var i;
        // The old plugin insists on eight bit data.
        if (stackDoc.bitsPerChannel != BitsPerChannelType.EIGHT)
            stackDoc.bitsPerChannel = BitsPerChannelType.EIGHT;
            this.stackDepthChanged = true;
        if (this.compositionFile == null)
            // Make sure the quad coordinates coorespond to the scale used by the UI plugin
            var maxPieceSize = 0;
            for (i in this.stackElements)
                maxPieceSize = Math.max( Math.max( this.stackElements[i].fWidth, this.stackElements[i].fHeight ), maxPieceSize );
            var mipLevel = 0;
            while (maxPieceSize >> mipLevel > kMaxPieceSize)
                mipLevel++;
            var imageReduction = 1.0 / (1 << mipLevel);
            this.offsetStack( -this.fBounds.getCenter() );
            this.scaleStack( imageReduction );
            this.offsetStack( -this.fBounds.getTopLeft() );
            this.setupConnectivity();
            // Add the additional per-piece metadata to pass to the filter plugin
            for (i in this.stackElements)
                this.stackElements[i].addPieceData();
        // Make the result layer active
        app.activeDocument.activeLayer = app.activeDocument.layers[app.activeDocument.layers.length -1];
        // Note: we need an "unmodified" flag, so if no
        // changes are made we skip the data recovery step...
        var result, err;
        try {
            result = this.invokeFilterPlugin( "AdobePhotomergeUI4SCRIPT", DialogModes.ALL );
        catch (err)
            result = null;
        if (result == null)        // Cancelled / bombed out
            stackDoc.close(SaveOptions.DONOTSAVECHANGES);
            return null;
        // Extract the data from the plugin
        var modifiedPieceInfo = result.getString( app.charIDToTypeID('PSpc') ).split('\n');
        for (i in modifiedPieceInfo)
            // If we loaded a composition (.pmg) file, we won't have corners yet.
            if (typeof(this.stackElements[i].fCorners) == "undefined")
                this.stackElements[i].fCorners = new Array();
            var j, pieceData = modifiedPieceInfo[i].split('\t');
            for (j in pieceData)
                var k, pair = pieceData[j].split('=');
                if (pair[0] == 'fUsed')
                    this.stackElements[i].fUsed = eval(pair[1]);
                if (pair[0] == 'fCorners')
                    var coords = pair[1].split(/\s+/).slice(1);
                    for (k = 0; k < 4; k++)
                        this.stackElements[i].fCorners[k] = new TPoint( Number(coords[k*2]), Number(coords[k*2+1]) );
        // Remove unused photos
        for (i = 0; i < this.stackElements.length; ++i)
            if (! this.stackElements[i].fUsed)
                stackDoc.layers[(this.stackElements.length-1)-i].remove();
                this.stackElements.splice(i,1);
                i--;
        // Hey...it could happen.
        if (this.stackElements.length < 2)
            return null;
        // If we run the UI, we're restricted to an eight bit stack.
        // If the source images were higher, we need to reload the image stack.
        if (this.stackDepthChanged)
            stackDoc.close(SaveOptions.DONOTSAVECHANGES);
            stackDoc = this.loadStackLayers();
        this.getBounds();        // Update w/new corner data
        return stackDoc;
    // "Adobe patent application tracking # B349, entitled 'Method and apparatus for Layer-based Panorama Adjustment and Editing', inventor: John Peterson"
    // Use the geometry of the overlapping pieces to create
    // simple rectangular blend masks.
    photomerge.quickBlend = function()
        var i, j;
        var blendRadius = Math.round(Math.min(this.stackElements[0].fWidth, this.stackElements[0].fHeight) / 10.0);
        if (PMDebug)
            for (i in this.stackElements)
                this.stackElements[i].dumpMLCorners();
        // Set up progress bar for blending
        // The progress bar doesn't work - there's know way in ScriptUI to force it to update.
    /*    var progressWindow = latteUI( g_StackScriptFolderPath + "PMBlendingProgress.exv" );
        var num = this.stackElements.length;
        var progressBar = progressWindow.findControl('_progress');
        progressBar.maxvalue = (num * (num + 1)) / 2;
        num = 0;
        progressWindow.center();
        progressWindow.show();
        // Blend the i'th piece against the 0..i-1 pieces below it
        for (i = this.stackElements.length-1; i > 0; --i)
            for (j = i-1; j >= 0; j--)
    //            num++;
    //            progressBar.value = num; // ScriptUI bug - there's no way to force this to update.
                this.stackElements[i].softEdgeBlend( this.stackElements[j], blendRadius );
    //    progressWindow.close();
    // Wrap the advancedBlend in a try/catch so errors (i.e., user cancel)
    // just stop the blend process.
    photomerge.advancedBlend = function( stackDoc )
        try {
            selectAllLayers(stackDoc, 1);
            advancedMergeLayers();
        catch (err)
    // With the stack elements specified, this
    // portion actually creates the Panorama.
    // Returns boolean indicating success/failure
    photomerge.doPanorama = function()
        var i, stackDoc = null;
        function primaryScreenDimensions()
            var i;
            for (i in $.screens)
                if ($.screens[i].primary)
                    return new TPoint( $.screens[i].right - $.screens[i].left,
                                          $.screens[i].bottom - $.screens[i].top );
        function resizeCanvasToFitPano()
            // Extend the canvas to hold the panorama
            var w = UnitValue( photomerge.getBounds().getWidth(), "px" );
            var h = UnitValue( photomerge.getBounds().getHeight(), "px" );
            app.activeDocument.resizeCanvas( w, h, AnchorPosition.TOPLEFT );
        if (this.interactiveFlag)
            // Filter must have eight bit depth and RGB color space
            stackDoc = this.loadStackLayers( BitsPerChannelType.EIGHT );
            stackDoc.changeMode(ChangeMode.RGB);
        else
            stackDoc = this.loadStackLayers();
        if (! stackDoc)
            return false;
        // Remove spurious last layer (not needed by Photomerge)
        if (app.activeDocument.layers[app.activeDocument.layers.length-1].name == this.pluginName)
            app.activeDocument.layers[app.activeDocument.layers.length-1].remove();
        // The UI needs everything in the top left corner
        if (this.interactiveFlag)
            for (i = 0; i < stackDoc.layers.length; ++i)
                var xoff = stackDoc.layers[i].bounds[0].as("px");
                var yoff = stackDoc.layers[i].bounds[1].as("px");
                if ((xoff != 0) || (yoff != 0))
                    stackDoc.layers[i].translate( UnitValue( -xoff, "px" ), UnitValue( -yoff, "px" ) );
        // Sort out exactly what operations we want to do.
        if (! this.interactiveFlag)
            selectAllLayers(stackDoc, 1);
            this.getAlignmentInfo( stackDoc, true );
            resizeCanvasToFitPano();
            if (this.advancedBlending)
                stackDoc.changeMode( ChangeMode.RGB );    // Auto-blend requires  RGB
                this.advancedBlend( stackDoc );
    // The Advanced blending works so well that there's little point
    // in having the rectangular gradient blends anymore.  Uncomment the
    // following two lines if you still want them (see similar code below
    // for the interactive case).
    //        else
    //            this.quickBlend();
            purgeHistoryStates();
            return true;
        // Interactive happens here
        if (this.compositionFile == null)
            this.getAlignmentInfo( stackDoc, false );   
            // With the corners computed by getAlignmentInfo,
            // find the bounds and use that to slide the images
            // over so their bounds has origin 0,0 (top left)
            this.offsetStack( -this.fBounds.getTopLeft() );
        if (this.interactiveFlag)
            stackDoc = this.callInteractivePlugin( stackDoc );
        if (stackDoc == null)
            return false;
        resizeCanvasToFitPano();
        // Now apply the transformation to the pieces
        for (i in this.stackElements)
            this.stackElements[i].transform();
        if (this.advancedBlending)
            selectAllLayers( stackDoc, 1 );
            stackDoc.changeMode( ChangeMode.RGB );    // Auto-blend requires  RGB
            advancedMergeLayers();
    // The new "advanced blending" works well enough that there's
    // little point in invoking the rectangular gradient blends anymore.
    // If you really want them, you can uncomment the two lines below.
    //    else
    //        this.quickBlend();
        purgeHistoryStates();
        return true;
    // Extra group breaks the main dialog's radio buttons,
    // so we manually implement it here (ScriptUI lossage)
    // NOTE: When called, this is a member function of radioControl,
    // -not- photomerge.  JavaScript voodoo.
    photomerge.radioClick = function()
        var w = this.window;
        var i;
        // Some of the transforms don't allow lens correction...
        var allowLensCor = ((this.button_id != '_LOnormal')
                            && (this.button_id != '_LOcollage')
                            && (this.button_id != '_LOinteractive'));
        w.findControl('_useLensCorrection').enabled = allowLensCor;
        w.findControl('_removeVignette').enabled = allowLensCor;
        // Be aggressive about it...
        if (! allowLensCor)
            w.findControl('_useLensCorrection').value = false;
            w.findControl('_removeVignette').value = false;
        for (i in photomerge.radioButtons)
            var b = w.findControl(photomerge.radioButtons[i]);
            if (b != this)
                b.value = false;
    // Callback when "Load Composition" is clicked.
    // NOTE: When called, this is a member function of buttonControl,
    // -not- photomerge.  JavaScript voodoo.
    photomerge.loadCompositionClick = function()
        function MacPMGType( f )
            if (f.type == 'PhMg')
                return true;
            var match = f.name.match(/.*[.](.+)$/);
            var suffix = match != null ? match[1].toLowerCase() : "";
            if (suffix == "pmg")
                return true;
            if (f instanceof Folder)
                // If the item is an app or a bundle it will be an
                // instance of folder. If we return true it will
                // appear as an enabled item. While the OS will not
                // let the user navigate into it, it is better to
                // have it appear as disabled.
                if (suffix.match(/app|bundle/i) != null)
                    // Do not navigate folders that end in .app or .bundle
                    return false;
                // navigate any other folder
                return true;
            // some unknown file type/suffix
            return false;
        var fileType = File.fs == "Windows" ? localize("$$$/AdobePlugin/Shared/Photomerge/Auto/Win=Photomerge Compositions:*.pmg")
                                        : MacPMGType;
        photomerge.compositionFile = File.openDialog( localize("$$$/AdobePlugin/Photomerge/LoadComp=Load Photomerge Composition"), fileType );
        if (photomerge.compositionFile == null || !photomerge.compositionFile.open("r"))
            return;
        var line = photomerge.compositionFile.readln();
        if (! line.match(/^VIS/))
            alert( this.pluginName + localize("$$$/AdobePlugin/Photomerge/BadComp=The Composition file is corrupt"), this.pluginName, true );
            return;
        // Read through the composition file and extract the file paths in it.
        var mergeFiles = new Array();
        while (! photomerge.compositionFile.eof)
            line = photomerge.compositionFile.readln();
            var f = line.match(/^\s*PATH\s+<([^>]+)/);
            if (f)
                // If no file path delimiters, image paths are assumed relative to the composition file
                var relPath = (f[1].indexOf( (File.fs == "Windows") ? "\\" : "/" ) < 0);
                f = (relPath ? photomerge.compositionFile.path + "/" : "") + f[1];
                mergeFiles.push( new StackElement( new File(f) ) );
        if (mergeFiles.length < 2)
            alert( this.pluginName + localize("$$$/AdobePlugin/Photomerge/BadComp=The Composition file is corrupt"), this.pluginName, true );
            return;
        photomerge.stackElements = mergeFiles;
        photomerge.interactiveFlag = true;
        this.window.close(kFilesFromPMLoad);
    // Set up the radio buttons
    photomerge.customDialogSetup = function( w )
        var i, button;
        for (i in this.radioButtons)
            button = w.findControl(this.radioButtons[i]);
            button.onClick = this.radioClick;
            // Flag with name so we can identify it in radioClick
            button.button_id = this.radioButtons[i];
        // Missing feature: We should query the selected file's metadata and
        // automatically turn on the '_useLensCorrection' checkbox if the
        // file has the proper support for it.
        w.findControl("_loadcomp").onClick = this.loadCompositionClick;
        // Julie didn't like the intro line; nuke it here because stackDialog looks for it.
        w.findControl("_intro").parent.remove(['_intro']);
        var size = w.findControl("_fileList").size;
        size[1] += 20;
        w.findControl("_LOauto").value = true;        // Set default
        w.findControl("_advancedBlend").value = this.advancedBlending;
        // If the PhotomergeUI or ADM plugins aren't there, don't display the option for it.
        if ((app.systemInformation.search(/PhotomergeUI/) < 0) || (app.systemInformation.search(/ADM /) < 0))
           w.findControl("_PMInteractive").hide();
           w.findControl("_loadcomp").hide();
    // Called by the dialog on closing to collect the results
    photomerge.customDialogFunction = function( w )
        if (w.findControl("_LOinteractive").value)
            this.interactiveFlag = true;
            this.alignmentKey = 'interactive';
        else
            var i, d = [{k:"_LOauto",v:"Auto"},{k:"_LOnormal",v:"translation"},{k:"_LOperspective",v:"Prsp"},{k: "_LOcylindrical",v:"cylindrical"},{k:"_LOspherical",v:"spherical"},{k:"_LOcollage",v:"scen eCollage"}];
            for (i in d)
                if (w.findControl(d[i].k).value)
                    this.alignmentKey = d[i].v;
                    break;
        this.advancedBlending = w.findControl("_advancedBlend").value;
        this.lensCorrection = w.findControl("_useLensCorrection").value;
        this.removeVignette = w.findControl("_removeVignette").value;
    // "Main" execution of Photomerge from the menu
    photomerge.doInteractivePano = function ()
        // Because of the ",true", the dialog is pre-loaded with any bridge files.
        this.getFilesFromBridgeOrDialog( localize("$$$/Private/Photomerge/PMDialogexv=PMDialog.exv"), true );
        try {
            if (this.stackElements && this.doPanorama())
                fitViewOnScreen();
                var flagDesc = new ActionDescriptor();
                flagDesc.putBoolean( kPhotomergeAdvancedBlendingFlag, photomerge.advancedBlending );
                app.putCustomOptions( "PhotomergeFlags001", flagDesc, true );
        catch (err)
            if (this.stackDoc)
                this.stackDoc.close(SaveOptions.DONOTSAVECHANGES)
    // Use this version to call Photomerge from a script.
    photomerge.createPanorama = function(filelist, displayDialog)
        this.interactiveFlag = (typeof(displayDialog) == 'boolean') ? displayDialog : false;
        if (filelist.length < 2)
            alert(localize("$$$/AdobePlugin/Shared/Photomerge/AtLeast2=Photomerge needs at least two files selected."), this.pluginName, true );
            return;
        var j;
        this.stackElements = new Array();
        for (j in filelist)
            var f = filelist[j];
            this.stackElements.push( new StackElement( (typeof(f) == 'string') ? File(f) : f ) );
        if (this.stackElements.length > 1)
            this.doPanorama();
    if ((typeof(runphotomergeFromScript) == 'undefined')
        || (runphotomergeFromScript==false))
        photomerge.doInteractivePano();

  • Image Processor not working in CS 5

    I have installed CS5 Design Premium on my Mac Pro at work. (Had installed the education demo, but it turns out my school doesn't fit Adobe's critereon for eligibility - and doesn't take it back after telling you that) although we have qualified for years, and we education people in 14 countries are are the top school in the world on our subject. No biggie, the upgrade's only $50 more with the NAPP discount.
    But at home it installed just fine on my Mac Pro and works great. But at work, where CS4 works flawlessly, I can't get it to run Image Processor from Bridge, or import photos into Photoshop Layers, it does do Photomerge, but it also does not do HDR PRo.
    Before the settings wouldn't stick in image processor, and I fixed the issue by changing permissions on the Photoshop settings folder in my user account. Now settings stick for Image Processor, but when I tell it to process a set of images, it keeps coming up with a dialog saying "Sorry, I could not process the following files..." and then gives a list of each file with it's the path.
    I'm wondering if the javascrpits running this process are broken, or have permission problems. (Image Processor, HDR Pro, etc.)
    If in Bridge, I seelct Tools->Photoshop->Batch, it gives me an error dialog: "FatalError: General Photoshop error occurred. This functionality may not be available in this version of Photoshop. <No additional Information Available>"
    I rely on Photoshop for a very large portion of my work. And that includes processing thousands of images. I cannot see how this problem is unique to me. Is anyone else having this problem? Is there a fix? Am I stuck with CS4 for automation? BTW, I can use Applescripts to automate Photoshop CS5. How wierd is that? Scripts I wrote work, but built-in ones appear to be broken on this machine.
    Additional information: I'm on a Windows network using Active Directory and my company user account while this is happening. Where it works at home, it's just my own Mac running OS X 10.6.4. I have all the latest CS5 updates installed.

    But all the
    files that are in my home directory (Snow Leopard 10.6.5) give that error.
    Do you have a beta of Snow Leopard, to my best knowledge 10.6.4 is the
    latest version??
    I'm going to format
    the drive on Monday and restore my system from Backup and see what that does.
    First try the uninstall CS5 suite using the uninstaller that is in each
    application folder. Also erase your serial number from computer and run the
    clean script:
    http://www.adobe.com/support/contact/cs5clean.html
    It is useless to reformat and after that reinstall from Back Up when you
    also re install the current preferences, highly likely you will end up with
    the same problem because you copied the old prefs again

  • Lightroom JPEG export VS Photoshop Image Processor

    Hey guys:
    Long time photoshop and lightroom user (long time user of all things Adobe). First post here in the forums. I did a search for my question but I think it was too specific, so it returned zero results.
    My question is about Lightroom's JPEG export vs Photoshops Image Processor. When I export a RAW file to JPEG from Lightroom, the file size is freaking huge. The JPEG is as big as my original RAW file (~25mb). Settings are set to default - 100 quality. Everything else remains untouched.
    However, when I use Photoshop's image processor (I launch it through Bridge, easier that way for me) and process the RAW images that way, my JPEGs are roughly 5-10mb in size. Settings in Image Processor are quality 10 and thats it. No actions being run or anything.
    Can anyone shed some light as to why Lightroom exports JPEGs that are roughly 2-4 times the size of Photoshop's JPEGs? My initial thoughts are that the 100 quality setting in Lightroom is more like Photoshop's quality 12 (that always makes me think of Spinal Tap - "Why don't you just make ten louder and make ten be the top number and make that a little louder?" "These go to eleven.") Ideally, exporting out of Lightroom would be much easier for my workflow.
    Thanks in advance.
    -The Doctor

    DrMilesBennell wrote:
    Can anyone shed some light as to why Lightroom exports JPEGs that are roughly 2-4 times the size of Photoshop's JPEGs? My initial thoughts are that the 100 quality setting in Lightroom is more like Photoshop's quality 12 (that always makes me think of Spinal Tap - "Why don't you just make ten louder and make ten be the top number and make that a little louder?" "These go to eleven.") Ideally, exporting out of Lightroom would be much easier for my workflow.
    You are correct: LR Quality 100 = PS Quality 12
    Despite LR having 101 Quality settings (0 to 100) it actually only has 12 Quality settings the same as PS 'Baseline Standard':
    JPEG Quality Setting Comparison
    PS
    LR
    LR Range
    Typical Reduction
    0
    0
    0-7%
    11%
    1
    10
    8-15%
    23%
    2
    20
    16-23%
    14%
    3
    30
    24-30%
    14%
    4
    35
    31-38%
    16%
    5
    40
    39-46%
    24%
    6
    50
    47-53%
    4%
    7
    55
    54-61%
    27%
    8
    65
    62-69%
    25%
    9
    70
    70-76%
    31%
    10
    80
    77-84%
    35%
    11
    90
    85-92%
    41%
    12
    100
    93-100%
    I keep a small copy of the above table taped to my monitor. I chose the numbers under the 'LR' column for the 12 steps (not AA's) to make it easier to remember. In actuality ANY number in the LR Range column will produce the same results for each step.
    Under the 'Typical Reduction' column notice the small amount of reduction for PS 6 (LR 47-53%) Quality setting. If interested why AND why you probably shouldn't use PS 7 (LR 54-61%) Quality setting see this post:
    http://forums.adobe.com/message/5641903#5641903

  • Rotate to fit / photoshop image processor

    Anyone know what happened to the Rotate to Fit feature in bridge/tools/photoshop/image processor? I have to make several web photo galleries and this most important feature seems to be missing with CS4.

    To clarify - older photoshop (or bridge) programs, you could put in the dimensions you wanted and check a checkbox that said something like "rotate to fit". So if I entered 400x600px, then photoshop would make Portrait images 600 tall x 400 wide, and Landscape image 600 wide by 400 tall.
    Photoshop CS4 doesn't have that option so I have to go through all of my images, select all the landscape images, put in 600 wide x 400 tall, and run the script. Then gotta Go Back... select all of the Portrait images.. and run the script again but this time for 600 tall x 400 wide. Such a pain - gotta be a better way just haven't found it yet! help!

  • Connectivity issues - Bridge CC to Photoshop CC - Image Processor issues.

    Hi guys.
    I'm having issues with Image Processor between Bridge CC and Photoshop CC. I can see in the forums that others are having issues that are close to mine but not the same. I can still see my image processor tab in my Tools menu.
    The problem is that I can click the Image Processor tab and it will bring Photoshop CC to the front of all windows, act like its loading, and then nothing happens from there. The run script box doesn't come up, nothing opens.
    I was wondering if anyone else has come across this and if so how you fixed it.
    Thank you

    I'm having the same result when I run image processor from Bridge. Image processor looks like it's about to open, the wait cursor displays (Photoshop CC will open if it's closed), but then when focus switches to Photoshop, nothing happens.
    A few months ago when I tried to upgrade to PS CC 2014 I had the same problem, which was only fixed when I removed all Adobe apps and re-installed CC and Bridge with no PS CC 2014. This might fix your problem if you re-install and only use a single version.
    Currently I have both versions of Photoshop installed again as I need the linked smart object functionality of 2014 but I also need my library of extensions in Photoshop CC. (Really frustrating switch to HTML5 only, by the way Adobe)
    Does anyone know if there is any way to have both versions of Photoshop installed AND have scripts fire off from Bridge?

  • I can't get Dr Browns Image Processor Pro to work from Bridge with Photoshop CC 2014

    We use the wonderful DR Browns Image Processor Pro script a lot, but cannot get it to work from Bridge with PS CC 2014. When I select files in Bridge CC and then go to Tools> Dr Browns Services 2.3.1 > Image Processor Pro it just pops up an error message that says ReferenceError: photoshop is undefined.
    The actual script works fine if I launch it from Photoshop CC 2014 - just not if I load it from Bridge CC.
    I have unistalled it and re installed a few times, both manually and through the Extension Manager CC.
    I am using a Win 7 64bit computer.
    I assume there is some change in the scripting part that loads Photoshop from bridge but not sure. It worked fine in CC. Just not CC 2014.
    I opened the Dr Browns Services .jsx file but don't see anything obvious. This is the section related to the Image Processor Pro part:
      // This routine takes an array of files. If called by Photoshop,
      // it will invoke Dr. Brown's Process 1-2-3 with the files. If called by
      // any other app, it will send a BridgeTalk message to Photoshop
      // to invoke this routine with the same arguments.
    drbrownserv.process123 = function (files) {
    // Bring Photoshop to the foreground.
      BridgeTalk.bringToFront ("photoshop");
      // Create a new BridgeTalk message for Photoshop to invoke
      // Image Processor with the selected files
      var btMessage = new BridgeTalk;
    btMessage.target = "photoshop";
      btMessage.body = "drbrownserv.process123 (" + files.toSource () + ");";
      btMessage.send ();
      } else {
    photoshop.runActionCommand ('611736f0-9c46-11e0-aa82-0800200c9a66', files);
      catch (error) {
      if (error.number != 8007) // Don't report user cancelled errors.
      drbrownserv.alert (error);

    I copied that .jsx file to a new name "Xbytor Image Processor Pro.jsx" edit that file changed the string Dr Browns services to "Xbytor Image Processor Pro" then commented out all the code that added tools menu items but "Image Processor Pro" and I put that file into
    "C:\Program Files (x86)\Common Files\Adobe\Startup Scripts CC\Adobe Bridge" even though Bridge CC is 64Bit seems to use theat location.
    Bridge CC was updated by the creative clouds update and opens Photoshop CC 2014 now

Maybe you are looking for