Exporting transparent PNGs (again)
Jim Ault
JimAultWins at yahoo.com
Wed Jul 5 02:27:02 EDT 2006
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" <asgg35 at dsl.pipex.com> 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 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