And yet, as time goes on, this happiness is mitigated. Egregious bugs (such as the failure of Selection.bounds) pop up, requiring internet searches to get the workaround. Then, there are unexpected things, where the document units are not honored for selection translations.
Even worse, it dawns on the programmer that many useful functions are missing — functions that seem like natural features for scripting Photoshop — like, say, getting the RGB value of an arbitrary pixel from an RGB document, or getting the transparency of said pixel, or, even, say, changing that value. Of course, there are workarounds for all of these functions (e.g.,this ). But why should I need fifteen extra lines of code?
Then, there are errors that are in my code. I find that aliasing is a big problem when I’m creating virtual triangles and then getting the pixels from within them. For example, my script for simplifying the creation of images like this:
has enough slop in the aliasing combines with the rotations and translations to yield problems like this:
So maybe it’s time for me to start implementing this kind of thing in a vector-based program. I’ve played with the demo of Intaglio, and it looks good. And it’s scriptable too, albeit only using AppleScript, which I’ll have to learn.