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