core: image convertion + SVG support:
/!\ new optional dependency: CairoSVG (with installed `[SVG]` extra) - new `convert` method in `tools.image` to save an image in an other format, with support for SVG (when CairoSVG is available) - new `imageConvert` method is available for frontends
This commit is contained in:
parent
2591e8e444
commit
47ec15cc46
2 changed files with 203 additions and 3 deletions
|
|
@ -507,6 +507,15 @@ class Bridge:
|
|||
kwargs['error_handler'] = error_handler
|
||||
return str(self.db_core_iface.imageCheck(arg_0, **kwargs))
|
||||
|
||||
def imageConvert(self, source, dest, arg_2, extra, callback=None, errback=None):
|
||||
if callback is None:
|
||||
error_handler = None
|
||||
else:
|
||||
if errback is None:
|
||||
errback = log.error
|
||||
error_handler = lambda err:errback(dbus_to_bridge_exception(err))
|
||||
return str(self.db_core_iface.imageConvert(source, dest, arg_2, extra, timeout=const_TIMEOUT, reply_handler=callback, error_handler=error_handler))
|
||||
|
||||
def imageGeneratePreview(self, image_path, profile_key, callback=None, errback=None):
|
||||
if callback is None:
|
||||
error_handler = None
|
||||
|
|
@ -1197,6 +1206,14 @@ class AIOBridge(Bridge):
|
|||
self.db_core_iface.imageCheck(arg_0, timeout=const_TIMEOUT, reply_handler=reply_handler, error_handler=error_handler)
|
||||
return fut
|
||||
|
||||
def imageConvert(self, source, dest, arg_2, extra):
|
||||
loop = asyncio.get_running_loop()
|
||||
fut = loop.create_future()
|
||||
reply_handler = lambda ret=None: loop.call_soon_threadsafe(fut.set_result, ret)
|
||||
error_handler = lambda err: loop.call_soon_threadsafe(fut.set_exception, dbus_to_bridge_exception(err))
|
||||
self.db_core_iface.imageConvert(source, dest, arg_2, extra, timeout=const_TIMEOUT, reply_handler=reply_handler, error_handler=error_handler)
|
||||
return fut
|
||||
|
||||
def imageGeneratePreview(self, image_path, profile_key):
|
||||
loop = asyncio.get_running_loop()
|
||||
fut = loop.create_future()
|
||||
|
|
|
|||
|
|
@ -439,6 +439,15 @@ class Bridge(object):
|
|||
else:
|
||||
d.addErrback(self._errback, ori_errback=errback)
|
||||
|
||||
def imageConvert(self, source, dest, arg_2, extra, callback=None, errback=None):
|
||||
d = self.root.callRemote("imageConvert", source, dest, arg_2, extra)
|
||||
if callback is not None:
|
||||
d.addCallback(callback)
|
||||
if errback is None:
|
||||
d.addErrback(self._generic_errback)
|
||||
else:
|
||||
d.addErrback(self._errback, ori_errback=errback)
|
||||
|
||||
def imageGeneratePreview(self, image_path, profile_key, callback=None, errback=None):
|
||||
d = self.root.callRemote("imageGeneratePreview", image_path, profile_key)
|
||||
if callback is not None:
|
||||
|
|
@ -926,6 +935,11 @@ class AIOBridge(Bridge):
|
|||
d.addErrback(self._errback)
|
||||
return d.asFuture(asyncio.get_event_loop())
|
||||
|
||||
def imageConvert(self, source, dest, arg_2, extra):
|
||||
d = self.root.callRemote("imageConvert", source, dest, arg_2, extra)
|
||||
d.addErrback(self._errback)
|
||||
return d.asFuture(asyncio.get_event_loop())
|
||||
|
||||
def imageGeneratePreview(self, image_path, profile_key):
|
||||
d = self.root.callRemote("imageGeneratePreview", image_path, profile_key)
|
||||
d.addErrback(self._errback)
|
||||
|
|
|
|||
Loading…
Reference in a new issue