1

我目前正在 Appengine 中创建一个图像共享站点,它主要按照我想要的方式工作,但有时我想要一个小版本的图像(缩略图) - 目前我正在用 HTML 缩小它,但浏览器仍然在完全没有必要时加载完整的(最多 32MB 的图像)。如何显示较低质量、较小的图像以节省带宽?

提供图像的代码。这是“mysite.com/view”

class ViewPhotoHandler(blobstore_handlers.BlobstoreDownloadHandler):
    def get(self, photo_key):
        if not blobstore.get(photo_key):
            self.error(404)
        else:
            self.send_blob(photo_key)

请求图像的代码。

p.blob_key 是一个字符串

link = '/view/%s' % p.blob_key
self.response.write('<img src="' + link + '" alt="Image" height="50" width="50">')

因此,一切都按应有的方式进行,但是在请求图像的小版本时会浪费太多带宽。

关于如何解决这个问题的任何想法?谢谢

4

1 回答 1

2

使用get_serving_url图像包中的功能

from google.appengine.api.images import get_serving_url

url = get_serving_url(blob_key, size=None, crop=False, secure_url=None)

您可以调整图像的大小,无论是否裁剪。

图片 API 文档:https ://developers.google.com/appengine/docs/python/images/functions

注意:您的处理程序现在不需要是BlobstoreDownloadHandler.

编辑:处理错误。

来自文档:图像 API 在本地机器上进行测试期间使用 Python 图像库 (PIL) 在本地转换图像。您需要下载 PIL 模块并将其安装在您的本地计算机上,以便将图像 API 与 SDK 一起使用。

于 2013-05-10T19:32:18.513 回答