On 13 Mar 2006, at 16:56, Wilhelm Sanke wrote:
Hi Ian,
I modified your script to the solution below, i.e. I took the
script of my "gray-scale" button of my ImageData Toolkit and
adapted it to your needs.
The script is for a 640 X 480 image, meaning that more than about
one million of chars have to be processed (640 * 480 * 3)
Running the script takes *one* second on my Windows XP computer (2
GHz):
on mouseUp
set the cursor to watch
put the milliseconds into Start
put the imageData of image 2 into iData
put empty into tmaskdata
put 2560 into re # i.e. 640 * 4
repeat with i = 0 to 479
repeat with j = 0 to 639
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
put the milliseconds - Start into fld "test"
end mouseUp
Best regards,
Wilhelm Sanke
<http://www.sanke.org/MetaMedia>
<http://www.sanke.org/ImageDataArt>
Wow! The 200x200 image processed in 200ms.
And making a universal version to work with any image dimensions is
trivial, just change a few lines and make it a function, just pass
the name of the img - or to be safer, edit to make it run off the
long ID...
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
Thanks a lot,
Ian
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution