At 10:49 AM +0100 6/18/02, James wrote: >Buzz Kettles <[EMAIL PROTECTED]> wrote: >> Do you know if copypixels supports [#ink : #reverse]? > >Hi Buzz, > >According to Werner Sharp, the formula for reverse ink is: >destination = destination XOR source. > >Truth table for XOR: > > | 0 1 >---|------- > 0 | 1 0 > | > 1 | 0 1 > >(Though I imagine that you know this already :-)
yes > >This operation is applied to each of the bits in each 8-bit color component: > >rgb(127, 0, 5) = 01111111 00000000 000000101 >rgb(128, 127, 5) = 10000000 10000000 000000101 > XOR 00000000 01111111 111111111 > >You should only be getting white pixels is if both destination and source >are the same color, as in the blue component above. AHA! - I had taken the same rect & reversed itself onto itself! >So it sounds as if you are using the same image as source and destination. YES - I had been placing a black rect set to reverse ink onto something & I was trying to simulate that. DOH! I had separated the grab pixels & copyPixels back on (so I wasn't drawing to & from the same image, but had forgotten to clear out with black in-between. image.fill on the same rect between them got it beautifully. Thanks so much for the reminder on how it works. -Buzz >To reverse an image, you should use black as the destination. Using other >colors gives different effects, as shown in the demonstration below. > >Cheers, > >James > > >-- In a Movie Script: > >on reverseInk(aTextColor, aDestinationColor) > -- Create a text member with the text "Buzz" in the chosen color > tTextMember = new(#text) > tTextMember.text = "Buzz" > tTextMember.fontSize = 18 > tTextMember.font = "Arial" > tTextMember.alignment = #center > tTextMember.width = 64 > > if ilk(aTextColor) = #color then > tTextMember.color = aTextColor > end if > > -- Convert the text to an image with an alpha channel > tSource = tTextMember.image > > -- Prepare a destination image with the chosen background color > tRect = tSource.rect > tImage = image(tRect.width, tRect.height, 32) > if ilk(aDestinationColor) <> #color then > aDestinationColor = rgb(0, 0, 0) -- use black as default > end if > tImage.fill(tRect, aDestinationColor) > > -- Use reverse ink to copy the text image across > tImage.copyPixels(tSource, tRect, tRect, [#ink: #reverse]) > > -- Create a new bitmap member from the resulting image > new(#bitmap).image = tImage >end > > >-- In the Message window: >-- To create white letters on a black background >reverseInk() >-- Using red text to create green letters on a blue background >reverseInk(rgb(255, 0, 0), rgb(0, 0, 255)) > > >-- rgb(255, 0, 0) = 11111111 00000000 00000000 -- red >-- rgb (0, 0, 255) = 00000000 00000000 11111111 -- blue >-- XOR 00000000 11111111 00000000 -- green > >[To remove yourself from this list, or to change to digest mode, go >to http://www.penworks.com/lingo-l.cgi To post messages to the >list, email [EMAIL PROTECTED] (Problems, email >[EMAIL PROTECTED]). Lingo-L is for learning and helping with >programming Lingo. Thanks!] [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
