# Get RGB color of a specific screen location

hakan at exformedia.se hakan at exformedia.se
Mon Jan 7 12:04:41 EST 2019

```Well, he could, if he didn’t wanted an average value of some more pixels, and, calculating an average via screenMouseLoc is really slow. Exporting a rect to an image is fairly quick though

Found the following in a stack:

# Calculates the average color value for an image
# pID should be the long id of the image we want to get the average from
function imageAverageValue pID
put the imageData of pID into tData
put the number of bytes of tData / 4 into tNumPixels
# Sum all pixel values
repeat with i = 0 to tNumPixels - 1
add byteToNum(byte i*4 + 2 of tData) to tResult["red"]
add byteToNum(byte i*4 + 3 of tData) to tResult["green"]
add byteToNum(byte i*4 + 4 of tData) to tResult["blue"]
end repeat
# Calculate mean value
repeat for each item anItem in "red,green,blue"
put round(tResult[anItem] / tNumPixels) into tResult[anItem]
end repeat
return tResult["red"], tResult["green"], tResult["blue"]
end imageAverageValue

So to get the mouse average color in a square ± 2px from the mouseLoc we could do:

function getMouseAverageColor pSize
if pSize is empty then put 2 into pSize
put globalLoc(the mouseLoc) into tLoc
if there is no image "averageColor" then create invisible image "averageColor"
put the long id of image "averageColor" into tID
export snapshot from rectangle item 1 of tLoc - pSize, item 2 of tLoc - pSize,  \
item 1 of tLoc + pSize, item 2 of tLoc + pSize to image "averageColor"
return imageAverageValue(tID)
end getMouseAvaregeColor

Happy coding!

:-Håkan
On 7 Jan 2019, 15:35 +0100, dunbarxx via use-livecode <use-livecode at lists.runrev.com>, wrote:
> A kluge, but couldn't you:
>
> on mouseUp
> set the screenMouseLoc to "200,200"
> end mouseUp
>
> I just threw this together, so you might want to restore the original
> mouseLoc, and locking the screen might be useful.
>
> Craig Newman
>
>
>
> --
> Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode

```