我把20个随机缩略图的JSON请求拉到一个iPhone应用程序中。目前,我只需在JSON数组中包含图像拇指url(见下文),然后iPhone就会获取每个图像。这真的很慢。在
原始JSON请求:
{ "item_list": [ { "item_name": "Item One", "user_item_thumb": "http://localhost:8080/i/agpwaGluZ28tYXBwcg4LEghJdGVtVXNlchgPDA/67x67", }, { "item_name": "Item Two", "user_item_thumb": "http://localhost:8080/i/agpwaGluZ28tYXBwcg4LEghJdGVtVXNlchgQDA/67x67", }, { "item_name": "Item Three", "user_item_thumb": "http://localhost:8080/i/agpwaGluZ28tYXBwcg4LEghJdGVtVXNlchgRDA/67x67", } ] }
所以,我想的是在图像数据上使用Base64,并在JSON请求中包含它们,所以iPhone只需要一个请求而不是21个请求。有道理?在
那么,我该怎么做呢?
我试着简单地将下面的图片打印成JSON格式,但是那些都是全尺寸的图片,我需要推一个Base64版本的缩略图。在
不工作:
f = item.image
f_enc = f.encode('base64')
这就是我现在如何得到我的拇指,只是创造他们的飞行。在
http://localhost:8080/i/agpwaGluZ28tYXBwcg4LEghJdGVtVXNlchgSDA/67x67
这是呈现上述图像请求的原因:
^{pr2}$任何想法都会令人惊叹。
如果有更好的办法,我洗耳恭听。在
我的问题:
-iPhone在这20张图片中的每一张都很慢
-图像是随机的,所以缓存可能不是一个选项。
-Base64是正确的吗?在
谢谢,
丹尼
是的,直接使用base64编码图像似乎是一种合理的方法,因为它们只是缩略图。这与在网页中使用
data:
url的原因相同。在这样做应该很简单,只需调用与常规代码中相同的imagesapi转换来生成缩略图,然后将结果输出序列化为base64。您可能希望将结果缓存到memcache中(在两个处理程序中),以防止对imagesapi的重复调用。或者,您可以在第一次上载图像时计算缩略图,并将其与全尺寸图像一起存储。在
也许你只需要打电话给
read()
如果你要处理任何大尺寸的图像,你会希望分块编码(也就是说,
read(4096)
多次,对每一块进行编码)。在相关问题 更多 >
编程相关推荐