def apply(self, mesh, filename, N, W, H): try: N = int(N) except ValueError: raise FilterException("Given value for N not a valid integer") if N < 1: raise FilterException("Given value for N not a valid integer") try: W = int(W) except ValueError: raise FilterException("Given value for W not a valid integer") if W < 1: raise FilterException("Given value for W not a valid integer") try: H = int(H) except ValueError: raise FilterException("Given value for H not a valid integer") if H < 1: raise FilterException("Given value for H not a valid integer") if os.path.exists(filename): raise FilterException("specified filename already exists") p3dApp = setupPandaApp(mesh) saveRotateScreenshots(p3dApp, filename, N, W, H) return mesh
def get_screenshot(dae_data, subfile_map): from meshtool.filters.panda_filters import pandacore from meshtool.filters.panda_filters import save_screenshot def customImageLoader(filename): return subfile_map[posixpath.basename(filename)] mesh = collada.Collada(StringIO(dae_data), aux_file_loader=customImageLoader) p3dApp = pandacore.setupPandaApp(mesh) im = pandacore.getScreenshot(p3dApp) im.load() if 'A' in list(im.getbands()): bbox = im.split()[list(im.getbands()).index('A')].getbbox() im = im.crop(bbox) main_screenshot = StringIO() im.save(main_screenshot, "PNG", optimize=1) main_screenshot = main_screenshot.getvalue() return main_screenshot
def apply(self, mesh, filename): if os.path.exists(filename): raise FilterException("specified filename already exists") p3dApp = setupPandaApp(mesh) saveScreenshot(p3dApp, filename) return mesh