Как указать размер миниатюр для фотографий, которые размещаются снаружи? - PullRequest
0 голосов
/ 25 декабря 2010

Я создаю сайт аукциона (на Python / Django).Пользователи могут предоставлять URL-адреса для изображений своих продуктов, хранящихся на внешних сайтах, например изображений, хранящихся в Photobucket.

Поэтому я планирую, что при отображении определенного аукциона я буду ссылаться на изображение внешнего продукта.Но когда я показываю список аукционов (например, страницу результатов поиска), мне нужно показать миниатюры

. Я вижу 2 варианта сделать это:

  1. Используйте внешние изображения в качестве эскизов, а также.Укажите стандартизированный небольшой размер для этих изображений, чтобы «превратить» их в миниатюры.Как мне это сделать - указать размер миниатюры в CSS или где-то еще?Какой будет хороший размер?Буду признателен за любые примеры кода, так как я не слишком знаком с CSS или HTML.

  2. Когда пользователь отправляет URL-адрес на внешнее изображение, загрузите это изображение на свой собственный сервер ипревратить его в эскиз.Любое программное обеспечение Python / Django, которое я могу использовать для загрузки удаленного изображения и затем превращения его в миниатюру?

Любые общие советы приветствуются.Я склоняюсь к варианту (1), потому что у меня только дешевый VPS, а вариант (1) будет гораздо менее ресурсоемким.Любая причина, которая НЕ является хорошей идеей?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 25 декабря 2010

Оба будут работать.

  1. Первый вариант может означать, что очень большие изображения нужно будет выбрать, а затем изменить их размер с помощью CSS / HTML.Таким образом, риск здесь - медлительность (слишком большая полоса пропускания) и уродливое изменение размера изображений (зависит от браузера).
  2. Изменение размера изображений может быть очень хорошей стратегией.Вы получите предсказуемые эскизы и более быстрое время загрузки.Вы можете использовать кэширование, чтобы убедиться, что уменьшенные эскизы не вычисляются каждый раз.

Я предполагаю, что, если вы немного погуглили, вы можете даже найти преобразователь изображения в качестве службы REST, поэтому вам даже не придется реализовывать его самостоятельно (даже если этотривиально) - вы можете просто объединить URL-адрес с URL-адресом службы изменения размера и покончить с этим.

** Редактировать **

Некоторым поисковым системам удалось найти следующие инструменты:1015 *http://code.google.com/p/microapps/wiki/Drinkme

http://transloadit.com/docs/image-resize
1 голос
/ 25 декабря 2010

Я довольно уверен, что недавно видел нечто подобное, где вы могли бы указать поле модели Django на URL удаленного изображения и сделать миниатюры, но вы также можете загрузить файлы изображений тоже. Черт возьми, если я не могу найти это сейчас.

Ах, ха! Может быть, щавель. Дает этот пример:

{% 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#

...