Jim -
I'm sure you are correct here. I tried testing my loop against
Dave's. On a small image my loop was 75 times slower than his. On a
larger image that took about a third of a second with his routine, I
expected mine to take about 20 seconds... After 5 minutes I gave up!!!
Chipp - your compositing stack is great - wish I'd seen it a few days
ago!
With everyone's help I now have a first draft of handler that
correctly exports a transparent PNG of a field containing Japanese
text - just what I needed! (And I've also learned a couple of
scripting lessons to boot - I had never used the "repeat for each
+var" syntax before! Doh! I am a SC dinosaur and I don't think SC
has this variant). Thanks so much.
All I need now is a bigger brain.
- Chris
On 5 Jul 2006, at 07:27, Jim Ault wrote:
The key maybe the
repeat for each
which is a sequential access rather than
'evaluate the access position each loop'
I also think that the larger the data source, the slower 'repeat
with x ='
becomes.
Try these runs and see if the results are linear or exponential.
get ( number of chars in imagedata of image "A1"/4)
repeat with n = 1 to it/10
repeat with n = 1 to it/5
repeat with n = 1 to it/4
repeat with n = 1 to it/2
repeat with n = 1 to it/1
Jim Ault
Las Vegas
On 7/4/06 2:33 PM, "Chris Carroll-Davis" <[EMAIL PROTECTED]> wrote:
Dave -
Thanks so much! Yes, your routine is much faster than mine... though
I'm not sure why!!
Here is my code:
on mouseUp
put alphadata of image "black" into temp
put the milliseconds into tStart ## for speed calc
repeat with n = 1 to number of chars in imagedata of image "A1"/4
put char n*4 of imagedata of image "A1" into char n of temp
end repeat
put the milliseconds - tStart && length(tMaskData) ##speed score
set alphadata of image "black" to temp
end mouseUp
For some reason, even though my loop is only a quarter of the length
of yours with just one line of code in it (and no decisions) it is
much slower. It was slower still because I was (for daft reasons I
wont go into!) originally doing the loop backwards.
I'll try to tweak to improve speed further, but even as it stands I
think it should be fine.
Also, thanks Ken for the links. They helped me understand what is
going on now!
Regards,
Happy Chris
On 4 Jul 2006, at 18:10, Dave Cragg wrote:
I'm not sure what calculations you are doing in the loop, but it
sounds too slow. The following routine creates alphaData from a 300
x 300 grayscale image in less than a second on my not so fast
machine. (You'll probably need to substitute the calculation inside
the loop with your own.)
I'm sure others will step up with faster alternatives. :-)
on mouseUp
put the imageData of image 1 into tImageData
put the milliseconds into tStart ## for speed calc
put 0 into tCount
repeat for each char tChar in tImageData
add 1 to tCount
if tCount = 4 then
put numToChar(255 - charToNum(tChar)) after tMaskData
put 0 into tCount
end if
end repeat
put the milliseconds - tStart && length(tMaskData) ##speed score
set the alphaData of image 1 to tMaskData
end mouseUp
Cheers
Dave
_______________________________________________
use-revolution mailing list
use-revolution@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@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@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution