On Fri Jul 8, 2011, Jim Ault jimaultwins at yahoo.com wrote:


On Jul 7, 2011, at 11:08 PM, Chipp Walters wrote:

> Hey guys, I'm building another education app for a state school
> system, and
> this time I'm creating a skinnable themed desktop, which kids can
> add their
> own wallpaper to. I'm wondering if anyone has a quick routine to
> calculate
> the 'main' colors of an image-- so I could automatically theme the
> button
> colors and some other objects.
>
> If not, I'll have to write my own. Thx.
>


You could take a look at Wilhem Sanke's ImageData Toolkit at
     http://www.sanke.org/MetaMedia/Samples.htm

and here is a blast from the past you might appreciate Chipp

http://runtime-revolution.278305.n4.nabble.com/ANN-quot-Imagedata-Toolkit-2-quot-released-td349536.html

Hope this helps.

Jim Ault
Las Vegas

and
Chipp Walters chipp at chipp.com answered:


Thanks Jim. That is a blast from the past. In fact, I'm pretty sure I wrote
the first convolve matrix which Wilhelm used for his earlier work. I wrote
it to create blurred shadows for ButtonGaget and to help with some image
compositing.

I suspect I'll have to write my own imagedata parser and do the necessary
math. It takes time... ;-(


Hello Chipp,

You know that I have mentioned you as the author of the first convolve matrix fully scripted in Metacard/Revolution time and again at various places. For example, I refer to you in the script of button "scripted version" in my stack "Imagedata Toolkit Preview 3" <http://www.sanke.org/Software/ImagedataToolkitPreview3.zip>, and - as another example - I have given a detailed description of the transition steps from your original script to a speed-optimized version I use today (to which Mark Waddingham also contributed) even a few weeks ago in my post <""Blurred vision" of Rev Newsletter, Apr 21"> to this list on April 26, 2011.

Concerning your question how to

"calculate the 'main' colors of an image-- so I could automatically theme the button colors and some other objects"

with the help of a histogram

I am not exactly sure what you intend to do, Are you looking for one or several "main colors" of an image to use with your buttons and other objects? And how to you intend to proceed from the various possible representations of a color histogram (for each of the RGB values, for the gray or even the hue values in HSV) to get one or several "main colors"?

A general recipe to create histograms can be found in Wikipedia under items

"image histogram" and "color histogram". Maybe you could also use the free "Gimp" program and use the histogram data of an image from there?

To write your own histogram tool should be relatively easy in principle:

- Get the RGB values of each pixel of an image (or a selected area of an image). - count the number of occurences for each color of the RGB triple and for each value 0 to 255
- show the accumulated numbers for each value category 0 to 255 in a chart.

Thus you can get separate histograms for each of the three RGB colors or one for the gray values when you average the RGB values before.

To find one single "main" color of an image, you could sum up all values for the three components R, G, and B separately and calculate the average for each component.

Another approach would be to get the "hue" values of the image pixels using Scott Raney's RGBtoHSV function to be found in the Metacard "Color Chooser" and Livecode's "revcolorchooser" stacks (the latter of which is no longer actively used in the Livecode IDE, but has remained in the "Toolset" folder). Raney's function unfortunately is very slow when it comes to calculate all pixels of a medium-sized image, I prefer faster RGBtoHSL and HSLtoRGB functions that I have ported to Livecode from examples found in the net.

I have so far not had a reason to use color histograms in my different image-processing stacks, but experimented with a number of other routines to set general parameters of images like "white balance", "mid balance", "black balance", "gamma correction", "dynamic range", "saturation", "set chroma", "brighten/darken", "contrast", "shift hues" etc. etc.-

I take it that most of the things I mentioned in this context here are certainly not new to you, but if you could be a bit more specific about what you intend to achieve I could possibly also come up with an idea or two.

Best regards,

Wilhelm Sanke



_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to