Is Adobe actively supporting UXP for Photoshop?

I have been writing on some UXP plugins this fall, and the speed of javascript coupled with the imaging API is awesome! It doesn’t seem like there have been any updates for a few years though, does anybody know what’s going on?

I think this and the following post by @Erin_Finnegan should answer your question

From the Ps side, we continue to advocate for renewed focus. As soon as we have an announcement to make, we’ll broadcast it.

I would like to know which Imaging API you’ve been using: the one under ‘photoshop’ or ‘uxp’. My team made the Ps one, so we’d love to hear feedback.

6 Likes

Thanks Sam! I am pretty sure I have been using your API:

const sourcePixels = await imaging.getPixels({ layerID: layer.id, sourceBounds: bounds }); const pixelData = await sourcePixels.imageData.getData();

I have been using it with 8 and 16 bit image data. Love that it gives me direct access to Grayscale and LAB image data too ( although that’s not documented, please leave it in! ) I am a printmaker/programmer so I would really love to get access CMYK and multichannel pixel data. I have also been using the 1 channel selection buffer and the alpha channel. I am really amazed by how fast pixel manipulation is in javascript now. I used to have a bunch of custom command line c programs I would run on saved images, but now I can do all of it without leaving photoshop. I have thought about making C++ plugins for years, but every time I got started the whole development environment was too daunting, UXP is so fast and easy to develop in.

2 Likes

That’s good news :flexed_biceps:
Hope someone listens. I’m personally interested in the UI part the most :crossed_fingers:

1 Like

That would be amazing. I would love to see outstanding robustness issues with command availability / doc switching resolved. The majority of bug reports I get from customers tie back to race conditions on the back end of PS. Always the worst kind of issues to debug/fix since there is no reliable way to repro them (often times even on the affected hardware).

1 Like

This would be great! If someone could update the official documentation and support tools like the examples, type definitions, and SW UXP wrappers, that would help the whole ecosystem, I think.

Currently there are several different repos with demo plugins that try to show how to use Spectrum Web Components with UXP wrappers, but none of them work out of the box, some don’t even compile anymore, and the official documentation even has stale information about what is available and what is deprecated.

The basic UI sample example plugin has parts that don’t render properly anymore.

It’s… frustrating and a massive barrier to entry to go in a never-ending circle of

  1. Check official documentation
  2. Follow steps to set up a plugin
  3. Hello world!
  4. Clone and try to run official examples repo
  5. Spend a day trying to make examples build and do what they say on the tin
  6. Go in literal circles in the documentation as it cross-references back to pages you already saw, but that were not solving problems
  7. Find that blogpost update, footnote, changelist comment, obscure workaround
  8. Go on to the next part of your plugin dev
  9. Go to step 6.

The official UXP Types definitions don’t even align, functionally, with what the API does and have had these issues for 2 years. :slightly_frowning_face: GitHub · Where software is built

6 Likes

Hey Sam, I have alpha working with RGBA images, but I have not been able to get it to work with getPixels on Grayscale or Lab images ( there are always 1 or 3 channels, never 2 or 4, and pixelFormat is never “GrayscaleAlpha” or “LABAlpha” ) The documentation indicates that it should work. Am I missing something?

On the putPixels side I have managed to create 2 channel Grayscale ImageData with imaging.createImageDataFromBuffer that reports having “GrayscaleAlpha” pixelFormat. It won’t let me putPixels to a background layer and it will to a floating layer, but the alpha data doesn’t seem to be getting applied.