Photoshop Embedded Python Pipeline

Just posting this to show off something we’ve been up to on our feature film pipeline, trying to get one of the core tools (photoshop) the artists use integrated as tightly as possible - Hopefully we will be releasing this as an open source plugin soon.

The way we have chosen to go about it was providing photoshop with an embedded python interpreter, that can execute python ‘in-process’.

The benefits of this have been exposing parts of the photoshop C api to python which can be used along side the COM scripting api.

The coolest bit has also been providing a menuing api to customise the menus (something Adobe dont seem to ever want to do), and a nice binding system to hook into any of photoshops core events and a few we have exposed ontop (eventMenu and other)

Unfortunatly photoshops events are all raised after the fact. eventClose for one is raised after the document is closed. No use if you want to prompt to save into your asset management system, so for many of these events we have exposed counterparts, eventClosing etc, which give you a chance to act on them or ignore.

Theres lots of other bits, but for now heres some pics of our stuff in action - PyQt4 is used for the guis.

Saving…

Menus…

Closing…

Loading…

…and a snippet of code to show you how easy it is to customise the menus

import MenuTools

def menuHandler(thisBinding,thisEvent,thisMenuItem):

        if thisMenuItem.text() != "File": return
        thisMenu = thisMenuItem.submenu()

        bottomSplitter = MenuTools.MenuItem()
        bottomSplitter.setType(MenuTools.SEPARATORMENUITEM)

	savePlusItem = MenuTools.MenuItem()
	savePlusItem.setType(MenuTools.TEXTMENUITEM)
	savePlusItem.setText("Save Plus..")

	savePlus = Binding()
	savePlus.setExec("savePlus.py")
	savePlusItem.addBinding(savePlus)

	thisMenu.addItem(bottomSplitter,8)
        thisMenu.addItem(savePlusItem,8)

	UnregisterBinding(thisBinding)

menuHandlerBinding = Binding()
menuHandlerBinding.setEvent(Binding.eventMenu)
menuHandlerBinding.setExec(menuHandler)


1 Like

First question:
When can we get a copy??

Second question:
When can we get a copy???

Awesome!

This … is … amazing!

Really great stuff!

Actually here’s a real question:

What license do you guys think you’d be releasing it under? We’d love to use that, but there is a moratorium on GPL code here :(:

Hey - the license will probably be under similar conditions to the boost librarys. Boost Software License

(see “How is the Boost license different from the GNU General Public License (GPL)?”)

Cheers

rob.

Awesome!!!
And everyone is expecting the copy I think.

DO WANT

This is really exciting :slight_smile: Why doesn’t adobe do this kind of stuff?

[QUOTE=TheMaxx;8623]DO WANT

This is really exciting :slight_smile: Why doesn’t adobe do this kind of stuff?[/QUOTE]

The short answer is that they don’t have to. Adobe utterly dominates the image editing space (and a good many other content creation categories), so they have very little pressure to innovate. I’d love to see Autodesk and Adobe mix it up a bit (as this would lead to better products on both sides), but alas, they each seem to be content with their respective markets. :tear:

[QUOTE=eevans;8624]The short answer is that they don’t have to.[/QUOTE]

Argh, what he said. If only GIMP would get off of its “we don’t have to be like photoshop cuz we’re free and open source, thus better” horse…</slightly_bitter>

Awesome work Eric. I definitely would like to integrate this into our art pipeline. Please let us know when you officially release it.

This is pure awesomeness, can’t wait to be able to try this out!

Spectacular!!! Thanks for sharing :smiley:

[QUOTE=eevans;8624]The short answer is that they don’t have to [innovate][/QUOTE]

Adobe’s business model, as told to me by multiple Adobe product managers:

  1. Develop and promote media standards - e.g. PDF, Flash ($ out)
  2. Sell the premium tools for content creation using those standards ($ in)

At this point, the company is old enough that every manager has reached his position by defending the status quo. I spent years - years - trying to get GPU acceleration into their products. Gave them tools, gave them code, demos to the board members, etc. It’s only now stumbling into the light, and only (imo) because Apple did it first and suddenly they had a well-positioned competitor.

Adobe’s hubris is pretty astounding – I recently was told by a Korean phone-maker that Adobe wouldn’t give them Flash tech support for their on-screen UI unless they pre-licensed a million units – so the phone company phone maker just used OpenSVG directly, instead. They may never use Flash on another phone (meaning: Adobe not only lost the sale on that phone, but all future sales. Twits)

Hehe, I think the first email I sent out to the EA-wide rendering distribution list was a 1500 word rant on Adobe… I feel your pain.

Great stuff. Looking forward a LOT to getting my gready grasps on it! Is that still planned ? g

The short answer is, they do not. Completely dominate the image editing adobe space, so they rarely have the pressure and constant innovation…

Still waiting here :slight_smile:

Hi, sorry there has been no news on this. I was really hoping it would be weeks at most to get it approved, not months.

I will have another poke and see if I can get a decision made, its a shame as its a 10 minute job to stick it on a repository somewhere. The topic of open sourcing a few bits did come up the other week, and amogst the bits was this.

will keep you posted.