bobwarren at howsoft.com
Thu Mar 23 23:54:57 EST 2006
Recently, Scott Rossi wrote:
>Recently, Bob Warren wrote:
>> > Suppose I have 2 cards in a stack and I am moving the mouse over
>> > card (naturally). I want to know what colour is under the mouse
>> > in a corresponding position on the 2nd card which is hidden
> I believe this function will retrieve the pixel color of a pixel in any
> image using the X,Y position of the pixel as measured from the topleft of
> the image. Pass the long ID of the image and the X,Y coordinates as
> on mouseUp
> answer retrievePixelColor(long id of myImage,5,5)
> end mouseUp
> function retrievePixelColor pObj,X,Y
> put imageData of pObj into tData
> put ((Y-1) * width of pObj * 4) + ((X-1)*4) into P
> repeat with N = 2 to 4
> put charToNum(char (P+N) of tData) & "," after tColor
> end repeat
> delete last char of tColor
> return tColor
> end retrievePixelColor
> Let me know if this works for you.
> Scott Rossi
> Creative Director
> Tactile Media, Multimedia & Design
Thanks a lot Scott, almost there!
Using a mouseMove routine on the top card such as:-
put retrievePixelColor(long id of image "myImage" \
of card "Card2",the mouseH,the mouseV) into field \
"ColourRGB" of card "Card1"
- it works quite nimbly, even on my old Pentium II.
However, there are some slight inaccuracies in the colours reported.
RED 255,0,0 is reported as 254,0,0
GREEN 0,128,0 is reported as 0,128,1
BLUE 0,0,255 is reported as 0,0,254
YELLOW 255,255,0 is reported as 255,255,1
WHITE 255,255,255 is OK.
Without a better analysis of your function, I cannot see immediately
what the trouble is. Can you see it Scott?
More information about the Use-livecode