Damon D Bell
Engaged
Damon D Bell
Engaged
Activity
‎Mar 26, 2017
08:23 AM
How did you get that data from action manager?
... View more
‎Mar 26, 2017
06:47 AM
I do use script listener/AM for a lot of things. I was just looking for an easy way to get the current minute, second, frame count for whatever frame it is on. I figured if it was in the DOM then I could just easily retrieve the data without have to create cryptic action descriptors (which I am not very good at). I basically just want to be able to specify a start and stop point to process a section of the video. Anyway, I'll post if I can figure out how to read the current minutes / seconds / frame using AM code. I'm pretty sure it can be done.
... View more
‎Mar 26, 2017
05:48 AM
That is kind of what I thought. I wonder if there is even anything created in the DOM for video. I think I already figured out how to do what I am trying to do using script listener. I basically just want to loop through each frame and then run an action on each frame. I just thought it would be nice if there was stuff that could be done using the DOM.
... View more
‎Mar 25, 2017
11:38 AM
Does anyone know if there is any documentation on scripting for video in Photoshop. In particular, I just want information for the DOM relating to video. From what I can tell, the Adobe documentation doesn't cover anything related to video. It seems like a "black box".
... View more
‎Aug 22, 2016
12:27 PM
It seems that the Scripts folder is read only for admin on CC 2105.5 by default now. I have some scripts that I have built jsx installers for. The installers basically just copy the folders and files from the installer into the Photoshop scripts folder under a new sub-folder. The installers no longer work in CC 2015.5 on Mac because the Photoshop scripts folder is read only for the admin in OSX. I am having to walk a lot of users through the process of installing my scripts. Basically, I'm just having them manually create the sub-folder under the scripts folder and then the installer will work to install in the sub-folder. Is there a way to have the script pull up the Mac OSX admin sign in to allow the files to be created? As an alternative, I tried tested using a dmg installer. This works. However, all of my scripts install in the same sub-folder under the Scripts folder. The DMG installer completely removes the sub folder which removes any of the other scripts the user has installed which are in the same sub-folder. There is no "merge" option for creating a dmg installer as far as I can see. The only way I can see to use a dmg installer would be to create separate sub-folders for each script. However, I don't want to do that because it would mess things up for a lot of existing users. If the updated then they'd end up with redundant scripts installed. Any advice would be appreciated.
... View more
‎Feb 10, 2016
06:57 AM
Thanks for the reply. It does work and now I sort of see how to manipulate it. One thing is that the first time it runs it is very slow. CS6 takes over 15 seconds the first time it runs (CC 2015 only about 5 seconds). CS6 also pops up with a progress bar that says "Initializing Video Import" which is where the 15 second lag comes in. After the first time it runs, it doesn't lag again until the computer is restarted. After a Photoshop restart it won't lag. It only lags after a computer restart. I'm assuming something is being kept in memory until the computer is restarted. Now that I sort of see how it works, I updated it with a few more code lines from the script listener to try to force it to load just the color settings in the ActionReference. After I did this, it doesn't lag the first time ran after a computer restart. I tested multiple times and it always lags after a computer restart with the original version. With the modified version it never lags. Was the original version possibly loading a bunch of stuff into the action reference which was causing the delay????? The video import progress bar made me think that it was adding a bunch of stuff into the ActionReference. Here is what I modified it to which seems to avoid the 1st run lag time.
function RGBBlendGamma(){
var ref = new ActionReference();
var id34 = charIDToTypeID( "Prpr" );
var id35 = stringIDToTypeID( "colorSettings" );
ref.putProperty( id34, id35 );
ref.putEnumerated( charIDToTypeID('capp'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
return executeActionGet(ref).getObjectValue(stringIDToTypeID('colorSettings')).getBoolean (stringIDToTypeID('RGBBlendGamma'));
};
... View more
‎Feb 10, 2016
05:27 AM
I'm trying to detect the user's color setting for Blend RGB Using Gamma (so I can alert them that my script doesn't work well if this is turned on). I can't figure out if this can be reported with the DOM. Since I can't figure out how to detect it through the DOM, I'm now trying to figure out how to modify script listener code to detect this setting. I've seen others modify action manager code to detect settings so I think it can be done. However, I can't wrap my brain around it. This is the script listener code from changing the setting. However, I don't want to change the user's setting. I just want to detect it so I can have the script alert them that it doesn't work with this setting being on. Does anyone know if this code can be transformed around to detect RGBBlendGamma? I'm still working to try to figure it out and if I do then I'll post the code. However, I'm having a hard time trying to wrap my brain around the action manager code.
var id32 = charIDToTypeID( "setd" );
var desc6 = new ActionDescriptor();
var id33 = charIDToTypeID( "null" );
var ref2 = new ActionReference();
var id34 = charIDToTypeID( "Prpr" );
var id35 = stringIDToTypeID( "colorSettings" );
ref2.putProperty( id34, id35 );
var id36 = charIDToTypeID( "capp" );
var id37 = charIDToTypeID( "Ordn" );
var id38 = charIDToTypeID( "Trgt" );
ref2.putEnumerated( id36, id37, id38 );
desc6.putReference( id33, ref2 );
var id39 = charIDToTypeID( "T " );
var desc7 = new ActionDescriptor();
var id40 = stringIDToTypeID( "RGBBlendGamma" );
desc7.putBoolean( id40, false );
var id41 = stringIDToTypeID( "colorSettings" );
desc6.putObject( id39, id41, desc7 );
executeAction( id32, desc6, DialogModes.NO );
... View more
‎Feb 10, 2016
04:45 AM
Thanks, I'll give that a try,
... View more
‎Feb 08, 2016
09:11 AM
OK, thanks. I just found the docs you are referring to and they answer a lot of questions I have. Also, the Adobe SDK says that Microsoft Visual Studio Professional is required. Can a different (free) C++ compiler be used instead or is there a reason that Visual Studio must be used to compile?
... View more
‎Feb 08, 2016
08:29 AM
I think I agree with that. I'm just struggling on how to get started. Is there any good lessons online for Photoshop plugin creation? I can't seem to find much documentation at all on plugin creation. I'm not a C++ expert by any means. However, I think I could easily write some simple code to get values from an array, run them through an algorithm and then create a new array of RGB data. I just need to figure out how to get the RGB values from photoshop into the plugin and then how to export the new values from the plugin back into photoshop. Also, I don't need a UI for the plugin. The JSX script will be the UI. The JSX UI managers about 20 layers. There is just one particular layer that I want for the plugin to be able to manipulate. The script would need to run the plugin and send a few variables to it. The plugin would then update the single layer in Photoshop. Also, I did look through the Dissolve sample you mentioned. However, that is actual rather complicated for me to figure out. I think what I want to do is actually much less complicated..............if I can just figure out how to get started.
... View more
‎Feb 07, 2016
11:12 AM
That is very interesting. I'll need to give the raw file thing a try. Also, I wonder if a script file together with a simple filter/plugin file that imports and exports the RGB data could be created? Is it possible for a script to get data from a filter plugin file? Ultimately, what I want is to be able to get the RGB data into an array (and preferable the HSB data too if possible), have the script (or plugin file) create a new array with modified values and then update a layer into photoshop with the new values. I still need the main program to use the JSX scripting because it needs to do a lot of script related tasks. I only have one particular layer that I want to manually calculate new values for each pixel and export directly back into photoshop somehow. I've never create a plugin filter before but I'm thinking that just importing and exporting RGB data would be the first step to learn when creating a plugin filter. Maybe a plugin file that does just that task wouldn't be too hard to create????
... View more
‎Feb 06, 2016
08:39 AM
Is there a way to import/export rgb values for all pixels into a multi-dimensional array with JSX?
... View more
‎Feb 05, 2016
01:41 PM
OK, thanks. That is what I thought but I was hoping I was wrong. I think the latest release of CC2015.1.2 now works with events attached to the window. At least it seems to work for me. However, attaching to a button may make more sense anyway if the events are available right away.
... View more
‎Feb 04, 2016
08:24 AM
Are you referring to the tree rendering script /filter? That is now under Filter > Render in the Photoshop menu for CC 2015. I'm not sure if it is a script or a plugin though.
... View more
‎Feb 04, 2016
08:20 AM
I just tested CC2015.1.2 and the statictext sizing is fixed now. The edittext sizing does not work. I then ran the same script in CS6 and the edittext sizing works. It appears that Adobe has fixed the statictext sizing in CC2015 but not the edittext yet.
... View more
‎Feb 04, 2016
08:02 AM
Are you using CC 2015? The static text size stopped working in CC 2015 as well. I have not tested to see if it was fixed in latest release though.
... View more
‎Feb 04, 2016
07:40 AM
Is it possible to create a global keyboard event listener that is not tied to a window, button, or any other UI element? The best I've been able to come up with is adding the event listener to the window. This only works if the window is active. If the user clicks outside of the window then the keyboard listener does not work. Also, when the dialog first appears, this won't work until after the user has made some type of interaction with the window. What I want is to have some keyboard shortcuts for the user that work regardless of where they have clicked on the screen, even if the dialog window is not "active". Is this possible? Here is the code I am using for the keyboard listener for the window.
mywindow.addEventListener ("keydown", function (k) {keyListen(k)});
function keyListen(k){if(k.keyName=="Z"){alert("Do stuff here");}}
... View more
‎Jan 29, 2016
10:59 AM
Thanks Eric. I already have a workaround. I just wanted to make sure you knew about the onEnterKey issue. For the workaround I just assign the edittext numerical value to a variable at the end of the function. The onEnterKey function compares the edittext number to the variable. It will only run if the edittext number is different than the variable. That way it only runs the first time.
... View more
‎Jan 29, 2016
10:06 AM
OK, I did confirm that the onEnterKey double runs the event function on another Windows computer. However, I was wrong about it being due to an update. The other computer was running 2015.1.2 as well and it said it needed an update. I tested before and after the update and it double ran the onEnterKey function both before and after the update. The update was only for a Camera Raw update and the version was still 2015.1.2 after the update. I also tested on Mac and the onEnterKey works fine and only runs the event function once. I guessing this is related to the same onChange issue. However, I figured you'd want to know about it just in case.
... View more
‎Jan 28, 2016
05:59 PM
OK, now it seems the .onEnterKey double triggers the event in CC 2015.1.2. I don't think it was doing this until today. I thought that CC 2015 updated today but it still shows 2015.1.2. Maybe it was a prior version but I thought for sure Creative Cloud was updating CC 2015.
Anyway, I tested by having the onEnterKey function do nothing except alert a message. The message always alerts twice in a row. In CS6, the message only alerts once.
... View more
‎Jan 28, 2016
04:00 PM
I'm aware that there are a lot of changes/bugs in CC 2015 (I have reported several issues to Adobe and they have been fixing them). The zero spacing on the icon buttons in CC2015 is one change that I really like though. I'm actually wanting to reduce the border width for the icon buttons on versions prior to CC 2015. I have several buttons stacked vertically and they take up too much room on CS5 / CS6. Is there a way to define the icon button spacing in CS5/CS6?
... View more
‎Jan 28, 2016
08:07 AM
I'm using some iconbuttons for my UI. In CC 2015, there is no border width at all. Versions prior to CC 2015 have really large borders. I'd like to remove the borders so the dimensions for all versions have no width. Can the border width be defined?
... View more
‎Jan 22, 2016
11:21 AM
In CC 2015.1.2 on windows, when you enter a number into an edittext box and press enter it makes a beeping sound. The sound is the same exact sound from the app.beep() jsx command. Is there a way to disable this sound in a script? Also, just FYI for anyone who uses an .onChange event for edittext boxes, this does not work with the enter key in CC 2015.1.2 on windows. It was reporting to Adobe yesterday and they confirmed it is a bug on windows with the 2015.1.2 release. The workaround until it is fixed is to use the onEnterKey event instead which works. Anyway, everything works with the onEventKey event. However, I would like to get rid of the beeping if possible.
... View more
‎Jan 22, 2016
07:51 AM
You can also add the scripts that you don't want to show in the menu into another folder called Photoshop/Presets/Scripts/myplugin/my plugin Scripts Only. JSX files inside folders that end in "Scripts Only" will not list the Photoshop scripts menu. The folder can be named anything in front of the Scripts Only part. I have been using this method for years with no issues.
... View more
‎Jan 22, 2016
07:23 AM
Thank you Eric. That works perfectly. I didn't even know about the onEnterKey handler. That is an easier workaround then what I was planning to do.
... View more
‎Jan 21, 2016
03:43 PM
2 Upvotes
I'm not sure is this was an intended change or a bug in CC 2015.1.2. I'm hoping someone from Adobe can clarify if this is a bug or an intended change to the javascript engine. If this was an intended change then I'll want to reprogram all of my scripts. Here is what is going on (only tested on Windows 10)........ I have a bunch of scripts that use the .onChange event for edittext boxes. When a numerical value is typed in and the user presses "Enter", this would trigger the .onChange function for the script. The .onChange functions use the new edittext values to apply changes to the image. This has worked fine from CS3 all the way through 2015.1.1. In 2015.1.2, the Enter key will not trigger the .onChange event. It just makes a beeping sound. Is the Enter key is now solely dedicated to "OK" buttons? For my scripts, they don't have OK buttons in order to avoid any "Enter" key conflicts with the edittext boxes. I have it setup to apply the changes with the edittext changes. There is then a regular button set up to close the dialog when the user is done but not any OK buttons tied to the enter key. Anyway, I'd really appreciate some feedback to let me know if this is a bug or something that is reprogrammed to be a permanent change. That way I can redesign my scripts accordingly. Thanks, Damon
... View more
‎Jan 21, 2016
11:39 AM
Thanks, this does appear fixed in 2015.1.2.
... View more
‎Jan 15, 2016
10:30 AM
That works great, thanks! Just in case anyone else needs to use this....... The marquees tool needs to be selected first or else it reports "undefined". The script listener will record selecting the tools that is easy to script. Once the marquee tool is selected it will report true or false when this script is ran.
... View more
‎Jan 15, 2016
09:11 AM
I just found this work around if there is no way to detect if it is already open. The toggle palettes will close everything. Then the command to toggle the option panel will open just that panel. Then toggling the palettes again will open everything back up the way it was and the options panel will remain open. This gives the exact same result whether the options panel is opened or closed to start. togglePalettes(); app.runMenuItem(charIDToTypeID('TglO')); togglePalettes();
... View more
‎Jan 15, 2016
08:59 AM
Thanks SuperMerlin. I now see that in the in the PITerminology.h document from the SDK. One question though...... Is there a way to see if it is already opened? That command toggles it which either opens or closes it depending on if the user has it already opened. I want the script to open it if is not already opened but not close it if it is already opened.
... View more