Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Passing An Image Back To Workflow
-
Something for y'all to pick the bits out of...
A reply from @WorkflowHQ on Twitter contained the following...
"Also regarding sending images, Workflow can decode base64 encoded images."
Does this help us here? Can we encode images base64?
-
@MartinPacker Encoding images as base64 should be fairly straightforward in Python. Do you have any more details?
-
-
I figured out how to do it without using the clipboard. The trick is basically to use "Get Contents of URL" with a
data:
URI that gets passed to the workflow via theworkflow://
scheme, containing base64-encoded image data.Here's the script:
import webbrowser import base64 from PIL import Image import io from urllib.parse import quote img = Image.open('test:Lenna') buffer = io.BytesIO() img.save(buffer, 'PNG') data_uri = 'data:image/png;base64,' + base64.b64encode(buffer.getvalue()).decode('ascii') webbrowser.open('workflow://run-workflow?name=EditBase64Image&input=' + quote(data_uri, ''))
...and the workflow should be something like this:
-
invalid base64 encode.
remove 'data:image/png;base64,' like this:data_uri = base64.b64encode(buffer.getvalue()).decode('ascii')
now it works