MCPcopy Create free account
hub / github.com/ImageEngine/cortex / testDPX

Method testDPX

test/IECoreImage/ImageWriterTest.py:522–581  ·  view source on GitHub ↗
( self )

Source from the content-addressed store, hash-verified

520
521 @unittest.skipIf( not os.path.exists( os.environ.get( "OCIO", "" ) ), "Insufficient color specification. Linear -> Cineon conversion is not possible with an OCIO config" )
522 def testDPX( self ) :
523
524 displayWindow = imath.Box2i(
525 imath.V2i( 0, 0 ),
526 imath.V2i( 99, 99 )
527 )
528
529 dataWindow = displayWindow
530
531 # DPX default channels are ushort 16-bit
532 rawImage = self.__makeIntImage( dataWindow, displayWindow, dataType = IECore.UShortVectorData, maxInt = 2**16-1 )
533
534 for dataType in [ IECore.FloatVectorData, IECore.HalfVectorData, IECore.DoubleVectorData ] :
535
536 self.setUp()
537
538 rawMode = ( dataType != IECore.FloatVectorData )
539 imgOrig = self.__makeFloatImage( dataWindow, displayWindow, dataType = dataType )
540 w = IECore.Writer.create( imgOrig, os.path.join( "test", "IECoreImage", "data", "dpx", "output.dpx" ) )
541 self.assertIsInstance( w, IECoreImage.ImageWriter )
542 w['rawChannels'].setTypedValue( rawMode )
543 w.write()
544
545 self.assertTrue( os.path.exists( os.path.join( "test", "IECoreImage", "data", "dpx", "output.dpx" ) ) )
546
547 # Now we've written the image, verify the rgb
548
549 r = IECore.Reader.create( os.path.join( "test", "IECoreImage", "data", "dpx", "output.dpx" ) )
550 r['rawChannels'].setTypedValue( rawMode )
551 imgNew = r.read()
552
553 if rawMode :
554 self.assertEqual( type(imgNew['R']), IECore.UShortVectorData )
555 self.__verifyImageRGB( rawImage, imgNew )
556 else :
557 self.assertEqual( type(imgNew['R']), IECore.FloatVectorData )
558 self.__verifyImageRGB( imgOrig, imgNew )
559
560 self.tearDown()
561
562 for dataType in [ ( IECore.UIntVectorData, 2**32-1), (IECore.UCharVectorData, 2**8-1 ) ] :
563
564 self.setUp()
565
566 imgOrig = self.__makeIntImage( dataWindow, displayWindow, dataType = dataType[0], maxInt = dataType[1] )
567 w = IECore.Writer.create( imgOrig, os.path.join( "test", "IECoreImage", "data", "dpx", "output.dpx" ) )
568 self.assertIsInstance( w, IECoreImage.ImageWriter )
569 w['rawChannels'].setTypedValue( True )
570 w.write()
571
572 self.assertTrue( os.path.exists( os.path.join( "test", "IECoreImage", "data", "dpx", "output.dpx" ) ) )
573
574 # Now we've written the image, verify the rgb
575 r = IECore.Reader.create( os.path.join( "test", "IECoreImage", "data", "dpx", "output.dpx" ) )
576 r['rawChannels'].setTypedValue( True )
577 imgNew = r.read()
578
579 self.__verifyImageRGB( rawImage, imgNew, 0.003 )

Callers

nothing calls this directly

Calls 10

__makeIntImageMethod · 0.95
__makeFloatImageMethod · 0.95
__verifyImageRGBMethod · 0.95
tearDownMethod · 0.95
typeFunction · 0.85
joinMethod · 0.80
setUpMethod · 0.45
createMethod · 0.45
writeMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected