Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Google Glass Tile从dataURL插入图像_Python_Django_Google Mirror Api - Fatal编程技术网

Python Google Glass Tile从dataURL插入图像

Python Google Glass Tile从dataURL插入图像,python,django,google-mirror-api,Python,Django,Google Mirror Api,我正在使用Django用Python编写我的玻璃器皿应用程序,我有一个dataURL,我想将它作为图像插入到玻璃瓷砖中。我尝试将URL本身作为图像插入: dataURL = canvas_file.value() //Just extracting the value of the dataURL from a Django form tile = { "html": "<img src={0}>".format(dataURL), "speakab

我正在使用Django用Python编写我的玻璃器皿应用程序,我有一个dataURL,我想将它作为图像插入到玻璃瓷砖中。我尝试将URL本身作为图像插入:

dataURL = canvas_file.value() //Just extracting the value of the dataURL from a Django form

tile = {
        "html": "<img src={0}>".format(dataURL),
        "speakableType":"Description.",
        "speakableText":message,
        "menuItems": [ { "action":"READ_ALOUD"}, ],
        "notification": {
        "level": "DEFAULT"
         }
        }

service.timeline().insert(body=tile).execute()
dataURL=canvas\u file.value()//只是从Django表单中提取dataURL的值
瓷砖={
“html:”。格式(数据URL),
“speakableType”:“说明”,
“speakableText”:消息,
“菜单项”:[{“动作”:“大声朗读”},],
“通知”:{
“级别”:“默认”
}
}
service.timeline().insert(body=tile.execute())

但是数据url非常长(如此之长以至于浏览器拒绝导航到它),glass不想从其源加载图像。有没有办法用Python对数据url进行编码,以便将其作为媒体附件插入?

数据URI本质上是base64编码的图像

例如,在此图像中:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
一旦您有了这个功能,将数据URI的base64部分转换回二进制文件以作为附件向上传输是非常简单的:

import base64
import io

from apiclient import errors
from apiclient.http import MediaIoBaseUpload

...

timeline_item = {'text': 'Hello world'}
media_body =  MediaIoBaseUpload(io.BytesIO(base64.b64decode('iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==')), mimetype="image/png", resumable=True)

service.timeline().insert(body=timeline_item, media_body=media_body).execute()

你能使用像“g00.gl”这样的url缩短器吗?替换(“0”,“o”)?图像有多大?如果可能,您应该尝试将图像大小调整为640 x 360像素,这样可以减小数据URN的大小。
import base64
import io

from apiclient import errors
from apiclient.http import MediaIoBaseUpload

...

timeline_item = {'text': 'Hello world'}
media_body =  MediaIoBaseUpload(io.BytesIO(base64.b64decode('iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==')), mimetype="image/png", resumable=True)

service.timeline().insert(body=timeline_item, media_body=media_body).execute()