OK, I have something that seems to work really well, at least in my test
cases... It has some checks for whether or not you have any nodes selected, if
it's a Read node and if it's an EXR file. After that, I used Adrian's code -
after bumping up the "header" size to search - from 1024 to 4096. I don't know
how to check to see how big the header really is, so I tried 2048, which still
didn't work for my EXRs, and then finally bumped it to 4096, which is now
working...
#### Function to test EXR file Compression scheme...
def exrCompressionTest():
compressList = ['None', 'RLE', 'ZIP', 'ZIP 16 lines', 'PIZ', 'PXR24',
'B44', 'B44A']
try:
n = nuke.selectedNode()
if nuke.selectedNode().Class()!='Read' or nuke.selectedNode()
== "" :
nuke.message('No Read node selected.')
elif
os.path.splitext(nuke.filename(nuke.selectedNode()))[-1]!=".exr" :
nuke.message('Selected Read is not an EXR')
else:
file = nuke.filename(n, nuke.REPLACE)
fd = open(file, 'rb')
header = fd.read(4096)
index = header.find('compression')
comp =ord(header[(index+28):(index+29)])
compressMethod = compressList[comp]
print compressMethod
nuke.message('EXR compression is %s' %(compressMethod))
except ValueError:
nuke.message('Please select a Read node...')
...I added a new menu item for the function to my utilities menu and it's
working great, so far!
Rich
Rich Bobo
Senior VFX Compositor
Mobile: (248) 840-2665
Web: http://richbobo.com/
On May 22, 2012, at 12:59 PM, Dan Rosen wrote:
> This is great! Can you let us know what index number the datatype is
> in? I'm finding it hard to tell.
>
> thx
> Dan
>
> On Mon, May 21, 2012 at 7:30 PM, Richard Bobo <[email protected]> wrote:
>> Adrian,
>>
>> Brilliant - I'll be making it into a nice little pulldown menu utility
>> function! And, looking a bit deeper at your code, of course, so I can learn
>> some more Python... 8^)
>>
>> Thanks!
>>
>> Rich
>>
>> Rich Bobo
>> Senior VFX Compositor
>>
>> Mobile: (248) 840-2665
>> Web: http://richbobo.com/
>>
>> "Man has been endowed with reason, with the power to create, so that he can
>> add to what he's been given."
>> - Anton Chekhov
>>
>>
>>
>> On May 21, 2012, at 6:40 PM, Adrian Baltowski wrote:
>>
>> Hi
>> With just few lines of code and totally simplified
>>
>> **********************************
>> compList = ['None', 'RLE', 'ZIP', 'ZIP 16 lines', 'PIZ', 'PXR24', 'B44',
>> 'B44A']
>>
>> n = nuke.selectedNode()
>> file = nuke.filename(n, nuke.REPLACE)
>> fd = open(file, 'rb')
>> header = fd.read(1024)
>> index = header.find('compression')
>> comp =ord(header[(index+28):(index+29)])
>> print compList[comp]
>>
>> ***********************************
>>
>> Each exr file MUST have compression info in the header and this info is
>> placed just after channels info. It's simple to get actual size of channels
>> list but I quickly set 1024 bytes of a headroom.
>>
>> Best
>> Adrian
>>
>>
>>
>>
>>
>> W dniu 2012-05-21 21:04:38 użytkownik Rich Bobo <[email protected]> napisał:
>>
>>
>> On May 21, 2012, at 3:00 PM, Nathan Rusch wrote:
>>
>> The OpenEXR utilities are pretty nice to have around, especially exrheader.
>> Sounds like it might be worth a look for you.
>>
>> exrheader /path/to/input/image.exr | grep compression
>>
>>
>> Yep. I'll have a look, when I get a bit of extra time to experiment...
>>
>> Thanks!
>>
>> Rich
>>
>>
>>
>>
>> -Nathan
>>
>>
>> From: Rich Bobo
>> Sent: Monday, May 21, 2012 11:53 AM
>> To: Nuke user discussion
>> Subject: Re: [Nuke-users] How to check zip compression type for EXR
>> images...?
>>
>> Thanks, Nathan. Looks like more trouble than it's worth. I tried a down and
>> dirty 'strings <path> | grep compress | more' and came up with two instances
>> of the word "compression", but no other info. So, I guess I'll just use the
>> "Does it take lots longer to cache?" testing method! ;^)
>>
>> Rich
>>
>>
>> On May 21, 2012, at 2:37 PM, Nathan Rusch wrote:
>>
>> No, it isn't.
>>
>> Depending on the context from which you need to check the compression
>> scheme, if Python proves too unwieldy, you could also resort to
>> parsing/pattern-matching the output of the exrheader executable.
>>
>> -Nathan
>>
>>
>> From: Rich Bobo
>> Sent: Monday, May 21, 2012 11:32 AM
>> To: Nuke user discussion
>> Subject: Re: [Nuke-users] How to check zip compression type for EXR
>> images...?
>>
>> I found this reference and it looks like the OpenEXR module would have what
>> I need, but I'm not sure if it's part of Nuke's Python installation or
>> not...
>>
>> http://excamera.com/articles/26/doc/openexr.html
>>
>>
>> Rich
>>
>> On May 21, 2012, at 2:24 PM, Rich Bobo wrote:
>>
>> Hi,
>>
>> Anyone know a quick way to check EXR images to see if they were saved as
>> 16-scanline zips or single-scanline zips? ViewMetaData reveals nothing
>> about the compression type. I'm sure there's a command line invocation that
>> will show more - I just can't find it...
>>
>> Thanks for any help,
>>
>> Rich
>>
>>
>> Rich Bobo
>> Senior VFX Compositor
>> Mobile: (248) 840-2665
>> Web: http://richbobo.com/
>>
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>
>>
>>
>> ________________________________
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>
>>
>>
>> ________________________________
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>
>>
>>
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>
>>
>>
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
> _______________________________________________
> Nuke-users mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
_______________________________________________
Nuke-users mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users