Here’s an extract from a treemap generated by the perl Devel::NYTProf profiler:
Notice the shading on the boxes? That’s done by setting the background color of the box to green, and also setting the background image to one that’s mostly transparent. The image doesn’t contain any color. It’s just an ‘alpha channel gradient’ — in this case a radial gradient that’s nearly fully transparent at the center and less transparent at the edges. It overlays the color and creates a visually pleasant effect. (I didn’t come up with this idea, I saw it used in one of the JIT examples.)
Here’s an example of a transparent alpha channel gradient image (of course, this may not show up well as it’s mostly transparent :-)
The transparent image gets stretched to fit the box, as you can see above. That works fairly well but ideally I’d like to get a more ‘cushioned’ effect with a ‘highlight’, like the illumination was coming from the top-left direction.
Something more like the boxes in this treemap from schoschie:
(Though if you look at that image carefully you’ll see that the location of the highlight isn’t consistent. I’m not sure what logic was used for that, or why.)
So anyway, I want to create a new alpha channel gradient image, but one where the gradient isn’t simply radial.
I’ve struggled with this in tools like Acorn and Seashore but failed. Mostly, I imagine, because I’m very unfamiliar with the tools, and especially working with the alpha-channel in non-trivial ways. There seem to be very few resources that cover more than simple examples.
Here’s an image that contains a monochrome mask that gives a rough idea of what I’m looking for as an alpha channel image. Here darker represents less transparent:
As you can see, I want the bulk of the central space to be nearly fully-transparent, with a fully-transparent highlight near a top corner. The lower-level of transparency should be limited to a fairly sharp gradient near the edges of the square image. That should work well when stretched to fit the variously sized rectangles in the treemap.
So, can you walk me though generating a non-trivial transparent alpha channel gradient image in a tool like Acorn or Seashore? Or perhaps the simplest approach would be a command-line utility to convert a monochrome gradient like the one above into a pure alpha channel gradient. If there is such a thing, can you talk me though using that?
Of course none of this is essential to NYTProf, and I won’t hold up the next release for this. This is pure gloss — but sometimes gloss is important.