Any suggestions on how to "onion skinning"?

Mark Smith mark at maseurope.net
Wed Nov 28 23:09:24 EST 2007


That makes sense. Duh!  I only tried it on some photos...ah well, no  
free lunch again :)

Best,

Mark

On 29 Nov 2007, at 03:59, Chipp Walters wrote:

> Mark,
>
> Unless you average the 3, your gray-scale result may not work
> properly. Try it on an image with 3 circles: 100%R, 100%G, 100%B and
> you'll see what I mean.
>
> On Nov 28, 2007 9:32 PM, Mark Smith <mark at maseurope.net> wrote:
>> This is sort of interesting:
>>
>> if you simply take one of the color bytes of each pixel, and copy it
>> to the other two color bytes, you get a gray-scale result. The
>> brightness/contrast varies with which color you choose. For the few
>> images I've tried, it seems to be red =brighter/less contrast  to
>> blue= darker/more contrast. This may be no surprise to the pro image
>> wranglers among us, but seemed intriguing to me.
>>
>> function MakeGS @indata ---- the imageData of the source image
>>     repeat with n = 1 to length(inData) - 3 step 4
>>        get char n+3 of inData  ---- blue byte, 1 for red, 2 for green
>>        put null & it & it & it after outData
>>     end repeat
>>     return outData
>> end MakeGS
>>
>> and it runs perhaps twice as fast as taking an average.
>>
>> Best,
>>
>> Mark
>>
>>
>>
>>
>> On 28 Nov 2007, at 23:06, Ian Wood wrote:
>>
>>>
>>> On 28 Nov 2007, at 21:24, Chipp Walters wrote:
>>>
>>>> Or, you could probably do it really fast with an optimized  
>>>> imagedata
>>>> script where you average the values of each pixel and reapply. I
>>>> would
>>>> think that would zip right along.
>>>
>>> I managed to find a function from March last year from a discussion
>>> about making alphadata from images.
>>> Originally written by Wilhelm Sanke, with a few tweaks by me to
>>> make it universal for any image size.
>>>
>>> Pass it the long ID of an image and it will return a one-channel
>>> image suitable for a mask.
>>>
>>> On 13 Mar 2006, at 20:51, Ian Wood wrote:
>>>> function makeMask tMaskImg
>>>>   set the cursor to watch
>>>>   put width of tMaskImg into tW
>>>>   put height of tMaskImg into tH
>>>>   put the milliseconds into Start
>>>>   put the imageData of tMaskImg into iData
>>>>   put empty into tmaskdata
>>>>   put tW * 4 into re
>>>>   repeat with i = 0 to (tH - 1)
>>>>     repeat with j = 0 to (tW - 1)
>>>>       put  chartonum(char (i*re + (j*4+2)) of idata) into tC1
>>>>       put chartonum(char (i*re + (j*4+3)) of idata) into tC2
>>>>       put  chartonum(char (i*re + (j*4+4)) of idata) into tC3
>>>>       put the round of ((tc1 + tc2 + tc3)/3) into tM
>>>>       put numToChar(tM) after tMaskData
>>>>     end repeat
>>>>   end repeat
>>>>   return tMaskData
>>>> end makeMask
>>>
>>> Add another tweak to put it back into RGB:
>>>
>>> function makeMask tMaskImg
>>>   set the cursor to watch
>>>   put width of tMaskImg into tW
>>>   put height of tMaskImg into tH
>>>   put the milliseconds into Start
>>>   put the imageData of tMaskImg into iData
>>>   put empty into tmaskdata
>>>   put tW * 4 into re
>>>   repeat with i = 0 to (tH - 1)
>>>     repeat with j = 0 to (tW - 1)
>>>       put  chartonum(char (i*re + (j*4+2)) of idata) into tC1
>>>       put chartonum(char (i*re + (j*4+3)) of idata) into tC2
>>>       put  chartonum(char (i*re + (j*4+4)) of idata) into tC3
>>>       put the round of ((tc1 + tc2 + tc3)/3) into tM
>>>       put numToChar(tM) into tPix
>>>       put tPix & tPix & tPix & tPix after tMaskData
>>>     end repeat
>>>   end repeat
>>>   return tMaskData
>>> end makeMask
>>>
>>> And you can do something like:
>>>
>>> put makeMask(long id of img 1) into tData
>>> set the imagedata of img 1 to tData
>>>
>>> to turn the specified image into greyscale. Takes about a second
>>> for a 640x480px image on a MBP 2GHz Core Duo, so not too speedy.
>>>
>>> Ian
>>> _______________________________________________
>>> use-revolution mailing list
>>> use-revolution at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your  
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list