# Programmatically determine the average greyscale

J. Landman Gay jacque at hyperactivesw.com
Thu Feb 18 22:01:53 EST 2016

```On 2/18/2016 8:44 PM, Sannyasin Brahmanathaswami wrote:
> Thanks that could be useful... BTW where to you store this kind of snippet

In an old HC stack I made 20 years ago that I've converted to LC. It's
not fit for public consumption but it has all my stuff in it so I keep
using it.

> how do you get the color a specific pixel in an image?

I have three examples. The first one is mine, based on a suggestion from
Scott Raney. The other two are more sophisticated because they use math...

Jacque's:

on getPixelColor pPt -- pass local stack-based pt
put the screenmouseloc into tOldLoc
put (item 1 of pPt) + (the left of this stack) into tloc
put (item 2 of pPt) + (the top of this stack) into item 2 of tloc
set the screenmouseloc to tloc
put the mousecolor into tColor
set the screenmouseloc to tOldLoc
return tColor
end getPixelColor

It happens so fast you never see the cursor move.

------

Unknown author:

put globalLoc(pVal) into pVal
put item 1 of pVal + 1 into item 3 of pVal
put item 2 of pVal + 1 into item 4 of pVal
export snapshot from rect pVal to templateImage
get the imageData of templateImage
reset templateImage
return byteToNum(char 2 of it) & "," & byteToNum(char 3 of it) & ","
& byteToNum(char 4 of it)

-------
Scott Rossi:

local theImageData

function getPixelColor pImage,pX,pY
if theImageData is empty then put the imageData of pImage into
theImageData
put width of pImage into W
put ((pY-1)*W)*4+pX*4 into lastChar
put charToNum(char lastChar of theImageData) into B
put charToNum(char lastChar-1 of theImageData) into G
put charToNum(char lastChar-2 of theImageData) into R
return R,G,B
end getPixelColor

--
Jacqueline Landman Gay         |     jacque at hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com

```