如何为外部托管的照片指定缩略图的大小?

时间:2010-12-25 09:08:36

标签: html css django image thumbnails

我正在建立一个拍卖网站(在Python / Django中)。用户可以为存储在外部站点中的产品图像提供URL,例如存储在Photobucket中的图像。

所以我的计划是,在展示特定拍卖时,我会链接到外部产品图片。但是,当我显示拍卖列表(例如搜索结果页面)时,我需要显示缩略图

我可以看到两个选项:

  1. 也可以使用外部托管的图像作为缩略图。为这些图像指定标准化的小尺寸,以将它们“转换”为缩略图。我该怎么做 - 我在CSS或其他地方指定缩略图大小?什么是好大小?任何代码示例都会非常感激,因为我对CSS或HTML不太熟悉。

  2. 当用户向外部图像提交URL时,将该图像下载到我自己的服务器并将其转换为缩略图。我可以使用任何Python / Django软件下载远程图像,然后将其变成缩略图吗?

  3. 任何一般性建议表示赞赏。我倾向于选项(1)因为我只有一个便宜的VPS而且选项(1)的资源密集程度要低得多。有什么理由不是个好主意吗?

    感谢。

2 个答案:

答案 0 :(得分:2)

两者都有效。

  1. 第一个选项可能意味着需要获取非常大的图像,然后通过css / html调整大小。所以这里的风险是缓慢(消耗过多的带宽)和丑陋的图像大小调整(取决于浏览器)。
  2. 自己调整图片大小可能是一个非常好的策略。您将获得可预测的缩略图和更快的加载时间。您可以使用缓存来确保每次都不会计算调整大小的缩略图。
  3. 我猜测,如果你搜索了一下,你甚至可以找到一个图像缩放器作为REST服务,所以你甚至不必自己实现它(即使它是微不足道的) - 你可以只是将url连接到某个resizer服务的url并完成它。

    **编辑**

    一些谷歌搜索发现了这些工具:

答案 1 :(得分:1)

相当确定我最近看到了类似于此的内容,您可以将Django模型字段指向远程图像URL并完成缩略图,但您也可以将其上传图像文件也是。如果我现在无法找到,那就太累了。

啊哈哈!也许是sorl-thumbnail。给出这个例子:

{% thumbnail "http://www.aino.se/media/i/logo.png" "40x40" crop="80% top" as im %}
    <img src="{{ im.url }}">
{% endthumbnail %}

假设你可以用模型中的URL字段(而不是ImageField)替换文字字符串(例如lot.remoteimageurl),那么我认为就是这样。

sorl-thumbnail将为您处理缩略图创建和缓存。

http://thumbnail.sorl.net/index.html#