def run(self): filename, width, height = self._filename, self._width, self._height try: if filename.endswith("gif"): palette_filename = op.join(get_nodegl_tempdir(), "palette.png") pass1_args = ["-vf", "palettegen"] pass2_args = self._extra_enc_args + [ # fmt: off "-i", palette_filename, "-lavfi", "paletteuse", # fmt: on ] ok = self._export(palette_filename, width, height, pass1_args) if not ok: return ok = self._export(filename, width, height, pass2_args) else: ok = self._export(filename, width, height, self._extra_enc_args) if ok: self.export_finished.emit() except Exception: self.failed.emit( "Something went wrong while trying to encode, check encoding parameters" )
def dump_image(img, dump_index, func_name=None): test_tmpdir = op.join(get_nodegl_tempdir(), "tests") os.makedirs(test_tmpdir, exist_ok=True) filename = op.join(test_tmpdir, f"{func_name}_{dump_index:03}.png") print(f"Dumping output image to {filename}") img.save(filename) dump_index += 1
def _update_graph(self, dot_scene): basename = op.join(misc.get_nodegl_tempdir(), 'ngl_scene.') dotfile = basename + 'dot' svgfile = basename + 'svg' with open(dotfile, 'w') as f: f.write(dot_scene.decode()) try: subprocess.call(['dot', '-Tsvg', dotfile, '-o' + svgfile]) except OSError as e: QtWidgets.QMessageBox.critical( self, 'Graphviz error', 'Error while executing dot (Graphviz): %s' % e.strerror, QtWidgets.QMessageBox.Ok) return item = QtSvg.QGraphicsSvgItem(svgfile) self._scene.clear() self._scene.addItem(item) self._scene.setSceneRect(item.boundingRect())
def _update_graph(self, dot_scene): basename = op.join(misc.get_nodegl_tempdir(), "ngl_scene.") dotfile = basename + "dot" svgfile = basename + "svg" with open(dotfile, "w") as f: f.write(dot_scene.decode()) try: subprocess.call(["dot", "-Tsvg", dotfile, "-o" + svgfile]) except OSError as e: QtWidgets.QMessageBox.critical( self, "Graphviz error", "Error while executing dot (Graphviz): %s" % e.strerror, QtWidgets.QMessageBox.Ok, ) return item = QtSvgWidgets.QGraphicsSvgItem(svgfile) self._scene.clear() self._scene.addItem(item) self._scene.setSceneRect(item.boundingRect())