# Re: Fast Algorithm to Determine Average Brightness of an Image

```Hi Sannyasin,

Based on my previous experiences trying to process
images with LC pixel by pixel, I would have to say no.
LC is too slow for this kind of processing.```
```
You would probably have to use a routine written in
some other language like Objective C, or C++, etc.

If anyone else has had a different experience with this type
of image processing in LC please chime in!

Thanks,

Rick

> On Sep 20, 2016, at 3:15 PM, Sannyasin Brahmanathaswami <bra...@hindu.org>
> wrote:
>
> Use Case:
>
> I want to place puzzle tiles on top of an image. We take a field, put a grc
> behind it, take a snapshot, crop each word off at -1000, -1000 and then
> scramble the tiles to make a puzzle… all this works really well. So I decided
> to dress it up a bit more: we dynamically choose a color for the foreground
> of the field in RGB range of 0-135 for all three colors → This gets us dark
> type… then add 100 to all the colors and this gets us a color for the bkgnd
> grc which is the same hue, but brighter (well, that depends on your preferred
> brand HSV, HSL, HSB LAB color theory, it's not that simple… but, close enough
> for this context)  tiles look great.. color is randomized for each puzzle
> with the caveat of an occasional "ugly" (in relation to the nature photo in
> the background)  but still… cool..
>
> OK I thought hmmm we could also use light type with dark background and I got
> this working… too much fun..
>
> Switch sUserColorRange
> case "darkType"
> set the itemdelimiter to "," # just to be safe
> put randomInRange(0,135) into tRGB
> put comma & randomInRange(0,135) after tRGB
> put comma & randomInRange(0,135) after tRGB
> set the backgroundcolor of grc "startHere" to tRGB
> set the foregroundcolor of fld _Quote to tRGB
> # same hue for background, but light
> repeat for each item tHue in tRGB
> put tHue+ (115) & comma after tTileBkgndRGB
> end repeat
> delete char -1 of tTileBkgndRGB
> set the backgroundColor of grc quoteBkgnd to tTileBkgndRGB
> break
> case "lightType"
> set the itemdelimiter to "," # just to be safe
> put randomInRange(136,255) into tRGB
> put comma & randomInRange(136,255) after tRGB
> put comma & randomInRange(136,255) after tRGB
> set the backgroundcolor of grc "startHere" to tRGB  ## oops need to fix this…
> too light, disappears
> set the foregroundcolor of fld _Quote to tRGB
> # same hue for background, but light
> repeat for each item tHue in tRGB
> put tHue- (115) & comma after tTileBkgndRGB
> end repeat
> delete char -1 of tTileBkgndRGB
> set the backgroundColor of grc quoteBkgnd to tTileBkgndRGB
> end Switch
>
> The incoming nature photo that is the backdrop for the puzzle is a random
> selection. The above is predicated on a user choice/save-as-setting, but a
> preferred algorithm would be:
>
> Determine average overall brightness of the image. If below 130 on a scale of
> 1-255, then use light colored type on dark tile… if >130 then use dark type
> on light tiles
>
> So is there a fast, efficient way to analyze a 1200 X 800 px image to get
> this average brightness value.
>
>
>
> _______________________________________________
> 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

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com