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"
> answer the mouseColor
> 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
More information about the use-livecode
mailing list