Esempio n. 1
0
def get_oiio_extensions():
    """Returns a list of extensions accepted by OpenImageIO.

    """
    v = OpenImageIO.get_string_attribute('extension_list')
    extensions = []
    for e in [f.split(':')[1] for f in v.split(';')]:
        extensions += e.split(',')
    return sorted(extensions)
Esempio n. 2
0
def oiioSupportsRaw():
    '''
    Check to see if raw files can be loaded natively
    '''
    # Check to see if the raw plugin has been loaded
    format_list = oiio.get_string_attribute("format_list").split(',')
    raw_plugin_present = 'raw' in format_list

    # Check to see if version is above when raw reading was fixed
    version_great_enough = oiio.VERSION >= 10707

    return (raw_plugin_present and version_great_enough)
Esempio n. 3
0
File: mkhdr.py Progetto: hpd/general
def oiioSupportsRaw():
    '''
    Check to see if raw files can be loaded natively
    '''
    # Check to see if the raw plugin has been loaded
    format_list = oiio.get_string_attribute( "format_list" ).split(',')
    raw_plugin_present = 'raw' in format_list

    # Check to see if version is above when raw reading was fixed
    # Update this version number to reflect when the functionality is fixed
    version_great_enough = oiio.VERSION >= 10707

    return (raw_plugin_present and version_great_enough)
Esempio n. 4
0
def get_oiio_namefilters():
    """Gets all accepted formats from the oiio build as a namefilter list.
    Use the return value on the QFileDialog.setNameFilters() method.

    """
    extension_list = OpenImageIO.get_string_attribute("extension_list")
    namefilters = []
    arr = []
    for exts in extension_list.split(u';'):
        exts = exts.split(u':')
        _exts = exts[1].split(u',')
        e = [u'*.{}'.format(f) for f in _exts]
        namefilter = u'{} files ({})'.format(exts[0].upper(), u' '.join(e))
        namefilters.append(namefilter)
        for _e in _exts:
            arr.append(_e)

    allfiles = [u'*.{}'.format(f) for f in arr]
    allfiles = u' '.join(allfiles)
    allfiles = u'All files ({})'.format(allfiles)
    namefilters.insert(0, allfiles)
    return u';;'.join(namefilters)
Esempio n. 5
0
import os
import shutil
import OpenImageIO as oiio

# Test OpenEXR's collection of damaged and broken images, to be sure
# we detect the damage and issue errors (not crash, etc).

failureok = True

# Save error output, too, and skip lines to make readable
redirect = ' >> out.txt 2>&1 '

# Figure out the version of openexr
openexr_version = 0
liblist = oiio.get_string_attribute("library_list").split(';')
for lib in liblist:
    lib_ver = lib.split(':')
    if lib_ver[0] == 'openexr':
        ver = lib_ver[1].split(' ')[-1].split('.')
        openexr_version = int(ver[0]) * 10000 + int(ver[1]) * 100 + int(ver[2])
        print(openexr_version)

# ../openexr-images/Damaged:
# README   t03.exr  t06.exr  t09.exr  t12.exr  t15.exr
# t01.exr  t04.exr  t07.exr  t10.exr  t13.exr  t16.exr
# t02.exr  t05.exr  t08.exr  t11.exr  t14.exr
imagedir = OIIO_TESTSUITE_IMAGEDIR + "/Damaged"
files = [
    "asan_heap-oob_4cb169_255_cc7ac9cde4b8634b31cb41c8fe89b92d_exr",
    "asan_heap-oob_504235_131_78b0e15388401193e1ee2ce20fb7f3b0_exr",
Esempio n. 6
0
    print ()

    print ("extra_attribs size is", len(s.extra_attribs))
    for i in range(len(s.extra_attribs)) :
        print (i, s.extra_attribs[i].name, s.extra_attribs[i].type, s.extra_attribs[i].value)
        print (s.metadata_val (s.extra_attribs[i], True))
    print ()
    print ("seralize(xml):")
    print (s.serialize("xml"))
    print ("serialize(text, human):")
    print (s.serialize("text", "detailedhuman"))

    # test initialization from ROI
    print ("Testing construction from ROI:")
    sroi = oiio.ImageSpec (oiio.ROI(0,640,0,480,0,1,0,3), oiio.FLOAT);
    print_imagespec (sroi)

    # Also test global OIIO functions here
    print ("\nTesting global attribute store/retrieve:")
    oiio.attribute ("plugin_searchpath", "perfect")
    print ("get_string_attribute plugin_searchpath : ", oiio.get_string_attribute ("plugin_searchpath", "bad"))
    print ("get_int_attribute plugin_searchpath : ", oiio.get_int_attribute ("plugin_searchpath", 0))
    print ("getattribute TypeString plugin_searchpath : ", oiio.getattribute ("plugin_searchpath", oiio.TypeDesc.TypeString))
    print ("getattribute TypeFloat plugin_searchpath : ", oiio.getattribute ("plugin_searchpath", oiio.TypeDesc.TypeFloat))
    print ("getattribute TypeString blahblah : ", oiio.getattribute ("blahblah", oiio.TypeDesc.TypeString))

    print ("Done.")
except Exception as detail:
    print ("Unknown exception:", detail)

Esempio n. 7
0
    print "getattribute('foo_str') retrieves", s.getattribute("foo_str")
    print "getattribute('foo_vector') retrieves", s.getattribute("foo_vector")
    print "getattribute('foo_matrix') retrieves", s.getattribute("foo_matrix")
    print "getattribute('foo_no') retrieves", s.getattribute("foo_no")
    print

    print "extra_attribs size is", len(s.extra_attribs)
    for i in range(len(s.extra_attribs)) :
        print i, s.extra_attribs[i].name, s.extra_attribs[i].type, s.extra_attribs[i].value
        print s.metadata_val (s.extra_attribs[i], True)
    print

    # test initialization from ROI
    print ("Testing construction from ROI:")
    sroi = oiio.ImageSpec (oiio.ROI(0,640,0,480,0,1,0,3), oiio.FLOAT);
    print_imagespec (sroi)

    # Also test global OIIO functions here
    print "\nTesting global attribute store/retrieve:"
    oiio.attribute ("plugin_searchpath", "perfect")
    print "get_string_attribute plugin_searchpath : ", oiio.get_string_attribute ("plugin_searchpath", "bad")
    print "get_int_attribute plugin_searchpath : ", oiio.get_int_attribute ("plugin_searchpath", 0)
    print "getattribute TypeString plugin_searchpath : ", oiio.getattribute ("plugin_searchpath", oiio.TypeDesc.TypeString)
    print "getattribute TypeFloat plugin_searchpath : ", oiio.getattribute ("plugin_searchpath", oiio.TypeDesc.TypeFloat)
    print "getattribute TypeString blahblah : ", oiio.getattribute ("blahblah", oiio.TypeDesc.TypeString)

    print "Done."
except Exception as detail:
    print "Unknown exception:", detail

Esempio n. 8
0
    print()

    s.attribute("dog", "Spot")
    print("Added dog: ", s.getattribute("dog"))
    s.erase_attribute("dog")
    print("After erasing dog, dog = ", s.getattribute("dog"))
    print()

    # test initialization from ROI
    print("Testing construction from ROI:")
    sroi = oiio.ImageSpec(oiio.ROI(0, 640, 0, 480, 0, 1, 0, 3), oiio.FLOAT)
    print_imagespec(sroi)

    # Also test global OIIO functions here
    print("\nTesting global attribute store/retrieve:")
    oiio.attribute("plugin_searchpath", "perfect")
    print("get_string_attribute plugin_searchpath : ",
          oiio.get_string_attribute("plugin_searchpath", "bad"))
    print("get_int_attribute plugin_searchpath : ",
          oiio.get_int_attribute("plugin_searchpath", 0))
    print("getattribute TypeString plugin_searchpath : ",
          oiio.getattribute("plugin_searchpath", oiio.TypeDesc.TypeString))
    print("getattribute TypeFloat plugin_searchpath : ",
          oiio.getattribute("plugin_searchpath", oiio.TypeDesc.TypeFloat))
    print("getattribute TypeString blahblah : ",
          oiio.getattribute("blahblah", oiio.TypeDesc.TypeString))

    print("Done.")
except Exception as detail:
    print("Unknown exception:", detail)
Esempio n. 9
0
    def add_add_file_menu(self, menu_set):
        add_pixmap = images.ImageCache.get_rsc_pixmap(
            u'add', common.ADD, common.MARGIN())

        @QtCore.Slot(unicode)
        def accepted(source):
            """Create an empty, placeholder file."""
            with open(os.path.normpath(source), 'a') as f:
                f.write('Bookmarks template file.')

        @QtCore.Slot(unicode)
        def show_widget(ext):
            from . import addfile
            widget = addfile.AddFileWidget(ext)
            widget.fileSaveRequested.connect(accepted)
            widget.fileSaveRequested.connect(self.parent().new_file_added)
            widget.open()

        menu_set[u'separator1'] = {}

        k = u'addfiles'
        menu_set[k] = collections.OrderedDict()
        menu_set[u'addfiles:icon'] = add_pixmap
        menu_set[u'addfiles:text'] = u'Add new file...'

        menu_set[k][u'scene'] = collections.OrderedDict()
        menu_set[k][u'scene:icon'] = add_pixmap
        menu_set[k][u'scene:text'] = u'Scene formats'
        menu_set[k][u'scene'][u'scenes'] = {
            u'disabled': True,
            u'text': u'Scenes'
        }

        menu_set[k][u'export'] = collections.OrderedDict()
        menu_set[k][u'export:icon'] = add_pixmap
        menu_set[k][u'export:text'] = u'Export formats'
        menu_set[k][u'export'][u'exports'] = {
            u'disabled': True,
            u'text': u'Exports'
        }

        menu_set[k][u'Adobe'] = collections.OrderedDict()
        menu_set[k][u'Adobe:icon'] = add_pixmap
        menu_set[k][u'Adobe:text'] = u'Adobe formats'
        menu_set[k][u'Adobe'][u'Adobe'] = {
            u'disabled': True,
            u'text': u'Adobe Creative Cloud'
        }

        menu_set[k][u'OpenImageIO'] = collections.OrderedDict()
        menu_set[k][u'OpenImageIO:icon'] = add_pixmap
        menu_set[k][u'OpenImageIO:text'] = u'OpenImageIO formats'
        menu_set[k][u'OpenImageIO'][u'OpenImageIO'] = {
            u'disabled': True,
            u'text': u'OpenImageIO formats'
        }

        menu_set[k][u'Misc'] = collections.OrderedDict()
        menu_set[k][u'Misc:icon'] = add_pixmap
        menu_set[k][u'Misc:text'] = u'Add other template...'
        menu_set[k][u'Misc'][u'Misc'] = {
            u'disabled': True,
            u'text': u'Misc formats'
        }

        for f in defaultpaths.get_extensions(defaultpaths.SceneFilter):
            pixmap = images.ImageCache.get_rsc_pixmap(
                f, None, common.MARGIN())
            menu_set[k][u'scene'][f] = {
                u'icon': pixmap,
                u'text': f.upper(),
                u'action': functools.partial(show_widget, f)
            }

        for f in defaultpaths.get_extensions(defaultpaths.ExportFilter):
            pixmap = images.ImageCache.get_rsc_pixmap(
                f, None, common.MARGIN())
            menu_set[k][u'export'][f] = {
                u'icon': pixmap,
                u'text': f.upper(),
                u'action': functools.partial(show_widget, f)
            }

        for f in defaultpaths.get_extensions(defaultpaths.AdobeFilter):
            pixmap = images.ImageCache.get_rsc_pixmap(
                f, None, common.MARGIN())
            menu_set[k][u'Adobe'][f] = {
                u'icon': pixmap,
                u'text': f.upper(),
                u'action': functools.partial(show_widget, f)
            }

        exts = OpenImageIO.get_string_attribute("extension_list").split(';')
        exts = [f.split(':')[1].split(',') for f in exts]
        exts = sorted(list(set([ext for sublist in exts for ext in sublist])))

        for f in exts:
            pixmap = images.ImageCache.get_rsc_pixmap(
                f, None, common.MARGIN())
            menu_set[k][u'OpenImageIO'][f] = {
                u'icon': pixmap,
                u'text': f.upper(),
                u'action': functools.partial(show_widget, f)
            }

        for f in defaultpaths.get_extensions(defaultpaths.MiscFilter):
            pixmap = images.ImageCache.get_rsc_pixmap(
                f, None, common.MARGIN())
            menu_set[k][u'Misc'][f] = {
                u'icon': pixmap,
                u'text': f.upper(),
                u'action': functools.partial(show_widget, f)
            }

        return menu_set
Esempio n. 10
0
     SceneFormat,
     'value':
     common.sort_words(
         'aep, ai, eps, fla, ppj, prproj, psb, psd, psq, xfl, c4d, hud, '
         'hip, hiplc, hipnc, ma, mb, nk, nk~,spm, mocha, rv, tvpp'),
     'description':
     'Scene file formats'
 },
 1: {
     'name':
     'Image Formats',
     'flag':
     ImageFormat,
     'value':
     common.sort_words(
         OpenImageIO.get_string_attribute('extension_list')),
     'description':
     'Image file formats'
 },
 2: {
     'name':
     'Cache Formats',
     'flag':
     CacheFormat,
     'value':
     common.sort_words(
         'abc, ass, bgeo, fbx, geo, ifd, obj, rs, sc, sim, vdb, usd, usda, '
         'usdc, usdz'),
     'description':
     'CG cache formats'
 },
Esempio n. 11
0
ExportFilter = 0b00100000
MiscFilter = 0b00010000
AdobeFilter = 0b00001000

FORMAT_FILTERS = {
    SceneFilter: {
        u'name': u'SceneFilter',
        u'description': u'Scene file formats',
        u'default':
        sort(u'c4d,hud,hip,hiplc,hipnc,ma,mb,nk,nk~,spm,mocha,rv,'),
        u'value': None,
    },
    OpenImageIOFilter: {
        u'name': u'OpenImageIOFilter',
        u'description': u'Image formats understood by OpenImageIO',
        u'default': sort(OpenImageIO.get_string_attribute(u'extension_list')),
        u'value': None,
    },
    ExportFilter: {
        u'name':
        u'ExportFilter',
        u'description':
        u'CG cache formats',
        u'default':
        sort(u'abc,ass,bgeo,fbx,geo,ifd,obj,rs,sc,sim,vdb,usd,usda,usdc,usdz'),
        u'value':
        None,
    },
    MiscFilter: {
        u'name': u'MiscFilter',
        u'description': u'Miscellaneous file formats',