Creating windowShapes in Rev

Dar Scott dsc at swcp.com
Wed Dec 31 00:56:09 EST 2003


On Tuesday, December 30, 2003, at 10:04 PM, Dar Scott wrote:

>>
>> So, is this the "transformation" you speak of? Again, how does it 
>> work? I
>> haven't succeeded in making an 8-bit mask from a 32-bit image in Rev. 
>> I can
>> do it very easily in other Mac-only venues, but not here, so far.
>
> This should be a 10 to 20 line function in the simple case.  I'll send 
> something later, I'm being called.

Off the top of my head...  This may take some fiddling to make work.

-- This function takes an imageData and the r,g,b of the color to be 
made transparent (key).
-- It returns a value suitable for maskData.
function maskOfImage imageD, r, g, b
local transp, opaq, maskD
   put null & numToChar(r) & numToChar(g) & numToChar(b) into colorKey
   put null into transp
   put numToChar(255) into opaq
   put empty into maskD  -- not needed
   repeat with i= 1 to size(imageD) step 4
      if (char i to i+3 of imageD) contains colorKey then  -- equals
         put transp after maskD
      else
         put opaq after maskD
      end if
   end repeat
   return maskD
end maskOfImage

Something like that.  It might be a byte too long or too short.

I use 'contains' instead of 'is' to avoid consideration of the string 
as a number.  There was a bug in which numbers could start with null 
and I don't know if the fix got into the latest version.  It has an 
unspecified target milestone.  I don't know how to interpret the 
Bugzilla target milestones, anyway.

Dar Scott





More information about the use-livecode mailing list