( self )
| 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 ) |
nothing calls this directly
no test coverage detected