Пример #1
0
def testCompute():

    graph = tuttle.Graph()
    n = [
        tuttle.NodeInit(
            "tuttle.exrreader",
            filename="TuttleOFX-data/image/openexr/DisplayWindow/t##.exr"),
        tuttle.NodeInit("tuttle.invert"),
        tuttle.NodeInit("tuttle.gamma", master=.5),
        tuttle.NodeInit("tuttle.jpegwriter",
                        filename=".tests/fromExr/output-####.jpg"),
    ]
    nodes = graph.addConnectedNodes(n)

    procOptions = tuttle.ComputeOptions()
    procGraph = tuttle.ProcessGraph(procOptions, graph, [])

    print "before compute"

    outputCache = tuttle.MemoryCache()
    timeRange = tuttle.TimeRange(1, 16, 10)
    print "setup"
    procGraph.setup()
    print "beginSequence"
    procGraph.beginSequence(timeRange)
    for time in xrange(timeRange._begin, timeRange._end, timeRange._step):
        print "time:", time
        procGraph.setupAtTime(time)
        procGraph.processAtTime(outputCache, time)
    print "endSequence"
    procGraph.endSequence()

    print "after compute"
Пример #2
0
def testCompatibleBitDepth():
	filepath = tempfile.NamedTemporaryFile( prefix="bitDepthTest-", suffix=".png" )
	tuttle.compute( [
		tuttle.NodeInit( "tuttle.checkerboard", size=[50,50], explicitConversion="8i" ),
		tuttle.NodeInit( "tuttle.swscale", height=500 ), # only supports 8ui
		tuttle.NodeInit( "tuttle.pngwriter", filename=filepath.name ),
		] )
Пример #3
0
def testTranscodeToDefaultCodec():
	tuttle.compute(
		[
			tuttle.NodeInit( "tuttle.avreader", filename="TuttleOFX-data/video/bars_100.avi", v_colorspace=2 ), # video with PAR 16/15=1.066667
			tuttle.NodeInit( "tuttle.invert" ),
			tuttle.NodeInit( "tuttle.avwriter", filename=".tests/testTrancodeToDefaultCodec.mov", v_colorspace=2, v_aspect=[0,1] ),
		], tuttle.ComputeOptions(0,20) )
Пример #4
0
def testMultipleCompute_simpleNodes():

    assert tuttle.compute([
        tuttle.NodeInit("tuttle.checkerboard", format="PAL"),
        tuttle.NodeInit("tuttle.invert"),
        tuttle.NodeInit("tuttle.blur", size=.2),
        tuttle.NodeInit("tuttle.pngwriter", filename=".tests/output.png")
    ])
Пример #5
0
def testIncompatibleBitDepth():
	filepath = tempfile.NamedTemporaryFile( prefix="bitDepthTest-", suffix=".png" )
	tuttle.compute( [
		tuttle.NodeInit( "tuttle.checkerboard", size=[50,50] ),
		tuttle.NodeInit( "tuttle.blur", size=[0.03, 0.05] ), # only supports 32f
		tuttle.NodeInit( "tuttle.swscale", height=500 ), # only supports 8ui
		tuttle.NodeInit( "tuttle.pngwriter", filename=filepath.name ),
		] )
Пример #6
0
def testMultipleCompute_simpleNodes():

    assert tuttle.compute([
        tuttle.NodeInit("tuttle.checkerboard", format="PAL"),
        tuttle.NodeInit("tuttle.invert"),
        tuttle.NodeInit("tuttle.colortransform", offsetGlobal=.2),
        tuttle.NodeInit("tuttle.pngwriter", filename=".tests/output.png")
    ])
Пример #7
0
def generateThumbnail(imgFile):
    from pyTuttle import tuttle
    tuttle.core().preload(False)

    tuttle.compute([
        tuttle.NodeInit("tuttle.pngreader", filename=imgFile),
        tuttle.NodeInit("tuttle.resize", width=256, keepRatio=1),
        tuttle.NodeInit("tuttle.pngwriter", filename=imgFile + "-thumbnail"),
    ])
Пример #8
0
def testSimpleNodeList():
    tuttle.compute([
        tuttle.NodeInit("tuttle.checkerboard",
                        size=[50, 50],
                        explicitConversion="8i"),
        tuttle.NodeInit("tuttle.invert"),
        tuttle.NodeInit("tuttle.swscale", height=500),
        tuttle.NodeInit("tuttle.pngwriter", filename=".tests/output.png"),
    ])
Пример #9
0
def testTimeShift():
    tuttle.compute([
        #tuttle.NodeInit( "tuttle.oiioreader", filename="/home/fab/imgTests/seqTga/###.tga" ),
        tuttle.NodeInit(
            "tuttle.oiioreader",
            filename="TuttleOFX-data/image/openexr/DisplayWindow/t##.exr"),
        tuttle.NodeInit("tuttle.invert"),
        tuttle.NodeInit("tuttle.timeshift", 12),
        tuttle.NodeInit("tuttle.gamma", master=.5),
        tuttle.NodeInit("tuttle.jpegwriter",
                        filename=".tests/fromExr/output-####.jpg"),
    ])
Пример #10
0
def testTrancodeToMpegpipe():
    tuttle.compute([
        tuttle.NodeInit("tuttle.avreader",
                        filename="TuttleOFX-data/video/flame.avi",
                        colorspace="bt709"),
        tuttle.NodeInit("tuttle.avwriter",
                        filename=".tests/testTrancodeToMpegpipe.y4m",
                        format="yuv4mpegpipe",
                        videoCodec="rawvideo",
                        colorspace="bt709",
                        aspect=[0, 1]),
    ], tuttle.ComputeOptions(0, 10))
Пример #11
0
def testOutputMemoryCache():

	outputCache = tuttle.MemoryCache()
	tuttle.compute(
		outputCache,
		[
			tuttle.NodeInit( "tuttle.checkerboard", format="PAL", explicitConversion="8i" ),
			tuttle.NodeInit( "tuttle.blur", size=.2 ),
			tuttle.NodeInit( "tuttle.invert" ),
		] )


	#print 'invert name:', invert.getName()

	imgRes = outputCache.get(0);

	print('type imgRes:', type( imgRes ))
	print('imgRes:', dir( imgRes ))
	print('FullName:', imgRes.getFullName())
	print('MemorySize:', imgRes.getMemorySize())
Пример #12
0
def testDeleteUnconnectedNodes():

	g = tuttle.Graph()
	n = [
			tuttle.NodeInit( "tuttle.oiioreader", filename="TuttleOFX-data/image/openexr/DisplayWindow/t##.exr" ),
			tuttle.NodeInit( "tuttle.invert" ),
			tuttle.NodeInit( "tuttle.timeshift", 12 ),
			tuttle.NodeInit( "tuttle.gamma", master=.5 ),
			tuttle.NodeInit( "tuttle.timeshift", 0 ),
			tuttle.NodeInit( "tuttle.jpegwriter", filename=".tests/fromExr/output-####.jpg" ),
		]
	nodes = g.addConnectedNodes(n)

	assert_equals(g.getNbNodes(), 6)
	assert_equals(g.getNbConnections(), 5)

	g.deleteUnconnectedNodes( nodes[-1] )

	assert_equals(g.getNbNodes(), 6)
	assert_equals(g.getNbConnections(), 5)

	checkerboard = g.createNode( "tuttle.gamma", master=.5 ).asImageEffectNode()
	lensdistort  = g.createNode( "tuttle.timeshift", 0. ).asImageEffectNode()

	assert_equals(g.getNbNodes(), 8)
	assert_equals(g.getNbConnections(), 5)

	assert_equals(len(g.getUnconnectedNodes(nodes[-1])), 2)
	assert_equals(len(g.getConnectedNodes(nodes[-1])), 6)

	g.deleteUnconnectedNodes( nodes[-1] )

	assert_equals(g.getNbNodes(), 6)
	assert_equals(g.getNbConnections(), 5)
Пример #13
0
def testLinearGraph():

	nodes = [
			tuttle.NodeInit( "tuttle.oiioreader", filename="TuttleOFX-data/image/openexr/DisplayWindow/t##.exr" ),
			tuttle.NodeInit( "tuttle.invert" ),
			tuttle.NodeInit( "tuttle.timeshift", 12 ),
			tuttle.NodeInit( "tuttle.gamma", master=.5 ),
		]
	for i in range(100):
		nodes.append( tuttle.NodeInit( "tuttle.timeshift", 0 ) )
	nodes.append( tuttle.NodeInit( "tuttle.jpegwriter", filename=".tests/fromExr/output-####.jpg" ) )
	
	tuttle.compute( nodes )
Пример #14
0
def testRenameNode():

	g = tuttle.Graph()
	n = [
			tuttle.NodeInit( "tuttle.oiioreader", filename="TuttleOFX-data/image/openexr/DisplayWindow/t##.exr" ),
			tuttle.NodeInit( "tuttle.invert" ),
			tuttle.NodeInit( "tuttle.timeshift", 12 ),
			tuttle.NodeInit( "tuttle.gamma", master=.5 ),
			tuttle.NodeInit( "tuttle.timeshift", 0 ),
			tuttle.NodeInit( "tuttle.jpegwriter", filename=".tests/fromExr/output-####.jpg" ),
		]
	nodes = g.addConnectedNodes(n)
	
	g.renameNode( nodes[0], "plop" )
	g.renameNode( nodes[2], "plip" )
	
	# rename to the same name
	g.renameNode( nodes[2], "plip" )
	
	# rename to an existing name
	assert_raises( Exception, g.renameNode, nodes[4], "plop" )