Join our global community of Photoshop developers.
Recently active
I am using Photoshop 2025 and develop a filter which contains a preview that is `gpb->displayPixels()`. The filter is only applied to the selection of the user. However, I also want to display this behavior in the preview. But I can't find out how to find out what (non-rectangular) area the user has selected. As soon as I select something, then `pb->haveMask` becomes `1`. But `pb->maskData` is always `NULL`. I have never seen it becoming something different. So, how can I find out the selection mask of the user? Thank you for the help! --- Just in case it has something to do with filter cases PiPL setting; all 7 cases have this value: ```"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00
Hi ALL.Do you have any idea how to reach the stroke information?I know, the basic stroke attributes are stored in the executeActionGet(r).getString(stringIDToTypeID('layerSVGdata'), but the advanced attributes, like stroke-linecap or dash, and the others are not.When I use Layer menu / copy SVG, than there are all these informations, and I figured how to reach that menu with JSX, but it is impossible to reach the clipboard via jsx scripting.So I need to find another solution, but I did not yet.Do you or anyone has any idea?Thanks a lot
Hi all,after the latest PSD updated of Sept 10, 2024, some CEP primitives throw an error. I've developed a custom plugin, when in a function i've got this code fragment: var file = window.cep.fs.readFile(decodeURI(fl.filename), cep.encoding.Base64); var byteCharacters = atob(file.data); From this last version, the atob primitives thrown an error: InvalidCharacterError: Invalid character. Note that the same code on PSD 25.11 works correctly. I've tried on Windows and Mac with M3 on Rosetta, and i've got the same error in either platform. Could you please check? In the releaseNotes there's nothing regarding it
Hello! I want to raise what I think is an issue I found with the Photoshop API.In a plugin that I'm developing for Photoshop using UXP, I was relying on the alert and confirm functions (which according to the last docs I could find here should be supported) but after a certain update, they are simply not defined.I'm still trying to track down the exact version where this stops working but having the same piece of code I can see a modal for sure in version 25.3.1:(title blurred in red just due to sensitive information)But running the same piece of code in the current last version 25.6 I'm getting the following error:Sadly I can't share the code I'm running due to license. I'll probably keep tracking down the version where this issue starts happening and will work on isolating the issue in a new sample plugin, just to make sure this bug is not coming from another issue in this project
versions tested: Photoshop 24.7.1Photoshop 25.5.1 platforms tested: Windows 10Mac OSX Sonoma steps to reproduce:Run the following codevar test = 10 - UnitValue( 1, 'px' ) alert( 'expect 9 px:\n'+ test ) expected result:Variable test should return a positive 9 px value actual result:Variable test returns a negative 9 px value
Hi PS developer community, We're happy to announce the upgrade of CEP to CEP 12.0.0.14. This release of CEP v12 includes:* Chromium version updated to CEF v99 (CEF 3 release branch 4844, Chromium 99.0.4844.84)* Migration from OpenGL to Metal in Mac OS in CEP code* Security vulnerability fixes by Chromium* Node version updated to v17.7.1* Critical bug fixes This upgrade might impact developers or users relying on a CEP extension. If you have any feedback, please let us know. CEP 12 Documentation can be found at https://github.com/Adobe-CEP/CEP-Resources/blob/CEP-12-Prerelease/CEP_12.x/Documentation/CEP%2012%20HTML%20Extension%20Cookbook.md
Hello. I'm editing a PSD file's text layers with the Photoshop JavaScript API. The original file features the Adobe Clean Medium font, so I want to keep it. Since by default the API replaces it with Arial, I'm explicitly setting the desired font in the call's options object. For the href property, I uploaded the font file (an OTF) to an AEM instance and successfully created an Adobe I/O signed URL out of it. This is the relevant section of my code:const axios = require('axios'); //... let requestBody = { "inputs": [ { "href": inputUrl, "storage": "external" } ], "options": { "manageMissingFonts": "useDefault", "globalFont": "Adobe Clean Medium", "fonts": [ { "storage": "external", "href": fontUrl //"<SIGNED_GET_URL_TO_AdobeClean-Medium.otf>" } ], "layers": [ { "name": "layer2", "text": { "contents": "content 1", } }, { "name": "layer3", "
Hey fellow devs,I'm hitting a wall with the Photoshop API when it comes to changing fonts. So far, I've only managed to switch to Georgia-Bold and Constantia-Bold. Has anyone else run into this issue?A few questions:Are we limited to specific fonts when using this API? If so, is there a list somewhere?Has anyone found a workaround or hack to use more fonts?Does anyone know if upgrading to a different subscription package or API tier opens up more font options?Are there any known bugs or limitations with font selection in the current API version?I'd really appreciate any insights, experiences, or tips you can share. If you've overcome this, how did you do it?Thanks in advance for any help!"This version is more conversational and community-oriented, which is typically more appropriate for a developer forum. It invites other developers to share their experiences and solutions, which can often lead to helpful discussions and workarounds.
Hello!I am trying to learn the Photoshop API and keep getting:{ "error_code": "401013", "message": "Oauth token is not valid"} I have deleted and created new Projects and removed and assigned the Photoshop API with new credentials several times and ensured I am pulling fresh api_keys and tokens repeatedly. I'm testing via Postman. Is there something basic I'm overlooking in my request? In Postman I've got it set as a Post method, Auth Type OAuth 2.0 with the header prefix "Bearer" set in the options even though it's not showing below in Postman's code view. I've tried manually pasting in the credentials as well as downloading the .json package for Postman from the credentials page in the project. In addition to postman, I've tried via various Node and Python scripts, including one that I had previously worked correctly with FireFly services when our company was doing a trial. This round though is just me as an individual using my individual account though
The following post shows how to activate items in the PLUGINS drop down menu of Photoshop using UXP. https://forums.creativeclouddeveloper.com/t/question-about-migrating-cep-plugin-to-uxp/3974/5 It includes the lineconst plugins = menuBar.submenu.find(item => item.menuID === 7200)My question is .... what is the item.menuID number for the EDIT drop down menu? The context here is that ‘Undo’ is an item in the Edit drop down menu which I wish to address. Currently, I have written a plugin where users can hit ‘Undo’ (say) 6 times if they don’t like the outcome and want to revert to the original state. I would like to provide a button which the user can click in order to automatically instigate 6 'undos'.
I followed the exmaple implementation for AWS s3 to create signedUrl. Instead of AWS, I want to use Google cloud storage. But unfortunately, I am getting "'HTTP PUT failed, RetryException: PUT'" error in the errorDetail field of the response.I executed a PUT request on returning the URL in the "output" section of the response. It worked. The error message is very poorly designed and doesn't provide any other details or directions to follow. It would be nice to get support on this:Function to generate signed_url:def get_presigned_url(bucket_name, path, operation, expires_in=3600): """ Generates a presigned URL for a Google Cloud Storage object. :param bucket_name: The name of the GCS bucket. :param path: The name of the blob in the GCS bucket. :param operation: The operation ('read' or 'write'). :param expires_in: Expiration time in seconds. :return: A presigned URL. """ storage_client = storage.Client() bucket = storage_client.bucket(bucket
Just sharing here, but there's a post on the AWS blog about Photoshop API integration. Read it here: https://aws.amazon.com/blogs/apn/scaling-image-manipulation-workflows-with-adobe-photoshop-api-on-aws/
Hello Guys, I have created a photoshop script which is activated by connecting to my wordpress website to the license manager plugin and when the code is inserted into the script , it checks if the user license is active on the server to enable the script .Is that possible to do ? i have tested this code : The script code : function verifyLicenseKey() {var licenseKey = prompt("Enter your license key:", "");var email = prompt("Enter your email:", ""); if (licenseKey && email) {var url = "https://websitelinkdemo.com/api/proxy.php?license_key=" + encodeURIComponent(licenseKey) + "&email=" + encodeURIComponent(email); try {var result = httpRequest(url);if (result && result.success) {alert("License key is valid.");main(); // If license is valid, run the main function} else {alert("Invalid or expired license key.");}} catch (e) {alert("Failed to verify the license key. Error: " + e.message);}} else {alert("You need to enter both a license key and an email to u
I am wondering, when creating a app and adding the Photoshop API it displays a quota of 5000 calls. This brings up a few questionsis this 5000 calls per month or when will they reset?is this only in test mode, and will there be a increased quota when publishing the app?is there any way of increasing the quota limit?I could not find any information on the quota applied to the Photoshop API and am wondering, for a real world production app 5000 calls seem very few?
Hi, I am working on an automation project using Photoshop API using the JSON actions. Output is a transparent image but when I save the file transparency is lost. I did not see any option in Output to preserve Transparency. is there any other way to save the image by preserving transparency? Thanks,
We are experiencing an issue with a paid font we are using in the Photoshop API. Although we have downloaded the fonts from the website and are attempting to use them in the Photoshop API to generate text, the font is not being applied correctly.Interestingly, we are also using some Google Fonts which are working perfectly fine.Below, I have attached the code we are using. Could you please help us resolve this issue as soon as possible? Alternatively, any hints or suggestions that might help us troubleshoot the problem would be greatly appreciated.the fonts we are usinglink1 - https://morisawafonts.com/fonts/228/link2- https://lets.fontworks.co.jp/fonts/75
Hello, I use the API to rename a layer via the Edit Text endpoint.When I send the call I get a message that the font doesn’t exist, I tried several fonts and didn’t succeed.Can somone guide to a solution?
Hello,Photoshop API has a limit of 500.I can't find the adobe Photoshop API pricing page, what should I do?Can I apply for the service?https://developer.adobe.com/photoshop/api/faq/pricing.mdhttps://developer.adobe.com/photoshop/api/faq/Any information would be appreciated.Thanks.
Dear forum peopleAnd people with great programming experienceI am working on creating a magazine in Photoshop, which consists of distributing the texts on the page evenly and with good layoutI know that InDesign is excellent at such things, but I am not good at working on itI found this code to divide the text into columns very well, but it is excellent at distributing the text from left to rightBut the project I am working on requires me to do the opposite, which is to create and distribute texts from right to left. I have tried a lot to modify this code to help me, but I have failed.Now I have come to you so that you can help me, please, pleasethis code : //------------------------------------------------------------------------------ // File: "[M] Text columns 1.1.jsx" // Version: 1.1 // Release Date: 21. 4. 2018 // Copyright: © 2018 Jaroslav Bereza <http://bereza.cz> // Licence: GPL <http://www.gnu.org/licenses/gpl.html> //------------------------------------------
Im trying to write a piece of python code that can take all the contents CSV file and import it as a dataset, my code is pretty buggy and rough and my output is really long but its replacing all the text variables just fine, my problem is it wont change COVER as its value is a path to the image that Im trying to replace with. my CSV headers are TEST1 ,TEST2 ,TEST3 ,TEST4 ,COVER, and the layer names match them identically, if anyone is able to give me a hand that would be greatly appreciated ive been on this for like a month heres the code that I have import comtypes.clientimport pandas as pddef open_PS(template_path😞 try: ps_app = comtypes.client.GetActiveObject("Photoshop.Application") except OSError: ps_app = comtypes.client.CreateObject("Photoshop.Application") ps_doc = ps_app.Open(template_path) ps_app.Visible = True r
I am using the Photoshop API for image processing in conjunction with other web programs and have encountered a limitation of 500 calls, which significantly hampers our operational capabilities. We apply specific effects to images, and this call limit restricts our ability to effectively process images across platforms. Does anyone have experience with increasing this limit or know of alternative solutions that could help mitigate this problem? Any advice or suggestions on integrating these APIs more efficiently would be greatly appreciated!
Creating a script to automatically cut PSD files. The conditions are as follows.1. Select multiple PSD files and a storage location.2. Open the corresponding psd file.3. In all psd files, create a guide line with an interval of 5110px or less in a place that is not above text, shape, and smart object.4. Take the location of the guide line, crop it, and save it.5. When cropping, remove all off-screen layers. The parts that are not currently in progress are No. 3 and No. 5. Especially for No. 3, a guide line is created and cropped on the text, shape, and smart object. In case of No. 5, the separately produced one works well, but when I try to match the two codes, the layers outside the screen are not removed. How can I fix the code? /* crop_psd_auto.jsx */ var selectFiles = File.openDialog("select file", "*.psd;*.psb;", true); // multiselect var saveFolder = Folder.selectDialog("select folder"); for (var index = 0; index < selectFiles.length; index++) { var
For some reason all of a sudden when I make a selection and try to use Gen Fill task bar the bar greys out and only Deselect shows. I can use all the selection tools, but as soom as I complete the selection the task bar greys out with only Delselect active. I've sign in and out of the Creative Cloud, and I know I haven't used all my 500 credits. This happens with both Regular Photoshop and Beta version. Any ideas and help on how to fix this would be greatly appreciated. Thanks, Dennis
Hello, I'm looking to get into photoshop scripting but was curious if my ideas are even possible to begin with.What I'd like to make: - a hotkey for a specific brush- a hotkey for alternating between two brush flow settings (e.g. press once = brush flow 20%, press twice = 80%, press again = back to 20%)Thank you!
I've managed to write javascript or C# to automate some tasks in photoshop. But javascript is slow, C# requires .NET runtime. I managed to get the IDL file of Photoshop which helps me use OLE automation in WIN32 API, but no document is found regarding how to use these interface methods in C++. For example, there is such "ExecuteAction" method in interface "_Application" with signature: [id(0x506c6179), helpstring("play an ActionManager event")] _ActionDescriptor* ExecuteAction( [in] long EventID, [in, optional] VARIANT Descriptor, [in, optional] VARIANT DisplayDialogs);I don't know how to pass the "VARIANT Descriptor" to it, what type should I set the VARIANT to, a dispatch interface pointer? And the "VARIANT DisplayDialogs", an integer?
Remix with Firefly Community Gallery
Thousands of free creations to fall in love with and remix in Firefly.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.