Unrelated question, but how do you end up with an image with a variable
resolution?
I've never seen that before. Is it for a specific purpose?


On Thu, May 8, 2014 at 4:43 PM, Dan Rosen <danrosenro...@yahoo.com> wrote:

> Try this threading technique. there's a sleep in there to give time for
> Nuke to evaluate.
>
> import threading
> import time
>
> def doIT():
>
>     nukeNode = nuke.selectedNode()
>
>     firstFrame = int(nuke.Root()['first_frame'].getValue())
>     lastFrame = int(nuke.Root()['last_frame'].getValue())
>     totalFrames = lastFrame - firstFrame
>     print( firstFrame, lastFrame )
>
>     #toggle frame to initiate getting the correct value
>     current_frame = nuke.frame()
>     nuke.frame( current_frame -1 )
>     nuke.frame( current_frame )
>
>     width = nukeNode.width()
>     height = nukeNode.height()
>
>     maxWidth = 0
>     maxHeight = 0
>
>     task = nuke.ProgressTask('Getting width and height in range ' +
> str(firstFrame) + ' ' + str(lastFrame))
>
>     progIncr = 100.0 / totalFrames
>
>     for frame in range(firstFrame, lastFrame+1):
>         if task.isCancelled():
>             nuke.executeInMainThread(nuke.message, args=('Aborted',))
>             return
>
>         nuke.frame( frame )
>         #Giving time for Nuke to evaluate
>         time.sleep(.1)
>
>         width = nukeNode.width()
>         height = nukeNode.height()
>
>         task.setProgress(int(frame * progIncr))
>         task.setMessage( str(frame) + ' '  + str(width) + ' ' +
> str(height) )
>
>         if width > maxWidth:
>             maxWidth = width
>         if height > maxHeight:
>             maxHeight = height
>
>         print (frame, width, height)
>
>     print( maxWidth, maxHeight )
>     nuke.frame( current_frame )
>
> threading.Thread(target=doIT).start()
>
>
>
> On Thu, May 8, 2014 at 12:22 PM, Haarm-Pieter Duiker <
> l...@duikerresearch.com> wrote:
>
>> Hi,
>>
>> Simple question. Is there a way to query the width and height of a node
>> at different times?
>>
>> Here's the context.
>> I'm working with data sets that include image sequences that vary
>> resolution from frame to frame. I'd like to find the max width and height
>> for a given image in a given frame range. I wrote the following code to
>> test things out.
>>
>> nukeNode = nuke.selectedNode()
>>
>>
>> firstFrame = int(nuke.Root()['first_frame'].getValue())
>>
>> lastFrame = int(nuke.Root()['last_frame'].getValue())
>>
>> print( firstFrame, lastFrame )
>>
>>
>> maxWidth = 0
>>
>> maxHeight = 0
>>
>> for frame in range(firstFrame, lastFrame):
>>
>>     nuke.frame( frame )
>>
>>     width = nukeNode.width()
>>
>>     height = nukeNode.height()
>>
>>     print( frame, width, height )
>>
>>     if width > maxWidth:
>>
>>         maxWidth = width
>>
>>     if height > maxHeight:
>>
>>         maxHeight = height
>>
>>
>> print( maxWidth, maxHeight )
>>
>>
>> The width and height values don't update to reflect the value for the
>> current frame. This seems to parallel the functionality of the Knob
>> getValue vs. getValueAt functions. Since width and height aren't knobs,
>> those functions don't help though.
>>
>>
>> Is there a way to query the width and height of a node at different
>> times, like the Knob getValueAt method?
>>
>>
>> HP
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Nuke-python mailing list
>> Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>
>>
>
> _______________________________________________
> Nuke-python mailing list
> Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to