That didn't work very well...

Anyway, here it is as an attachment instead.

Best Regards
Jimmy Christensen
Developer
Ghost A/S

On 18/07/12 08:14, jimmyGhost wrote:
> Guess it was because it was posted on the mailing list.
> Anyway better late than never Smile
> 
> *Code:*
> import struct
> 
> n = nuke.selectedNode()
> filePath = nuke.filename(n, nuke.REPLACE)
> file = open(filePath, 'rb')
> 
> compressionTypes = ['RAW', 'RLE', 'ZIP1', 'ZIP16', 'PIZ', 'PXR24', 'B44']
> 
> compression = 0
> if struct.unpack("i4", file.read(4))[0] == 20000630:
>     versionFlag = struct.unpack("i4", file.read(4))
>     loop = True
>     while loop == True:
>         i = 0
>         size = 0
>         headerStart = file.tell()
>         headerName = ""
>         headerType = ""
>         while i <50> 4096:
>                 loop = False
>             i=+1
> 
> print(compressionTypes[ord(compression)])
> 
> 
> 
> _______________________________________________
> Nuke-users mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
> 
import struct

n = nuke.selectedNode()
filePath = nuke.filename(n, nuke.REPLACE)
file = open(filePath, 'rb')

compressionTypes = ['RAW', 'RLE', 'ZIP1', 'ZIP16', 'PIZ', 'PXR24', 'B44']

compression = 0
if struct.unpack("i4", file.read(4))[0] == 20000630:
    versionFlag = struct.unpack("i4", file.read(4))
    loop = True
    while loop == True:
        i = 0
        size = 0
        headerStart = file.tell()
        headerName = ""
        headerType = ""
        while i < 51:
            buffer = file.read(1)
            if ord(buffer) == 0 and headerName == "":
                nameSize = file.tell() - headerStart
                file.seek(0-nameSize, 1)
                headerName = file.read(nameSize)[0:-1]
                if len(headerName) == 0:
                    loop = False
                    break
            elif ord(buffer) == 0 and headerType == "":
                nameSize = file.tell() - len(headerName) - 1 - headerStart
                file.seek(0-nameSize, 1)
                headerType = file.read(nameSize)[0:-1]
                headerSize = struct.unpack("i4", file.read(4))[0]
                if headerName == "compression":
                    compression = file.read(1)
                else:
                    file.seek(headerSize, 1)
                break
            if i == 50 or headerStart > 1024:
                loop = False
            i=+1

print(compressionTypes[ord(compression)]) 
_______________________________________________
Nuke-users mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users

Reply via email to