Comments 33
Картинка подобрана правильно настолько, что словосочетание Resize To Fill обретает новый смысл.
А о самом приложении сказать особо нечего. Мне лично пока вполне хватает filebrower versions; Кроме того вспоминается заслуживший когда-то статус легендарного sorl.thumbnail
А о самом приложении сказать особо нечего. Мне лично пока вполне хватает filebrower versions; Кроме того вспоминается заслуживший когда-то статус легендарного sorl.thumbnail
+8
sorl.thumbnail, все равно, вне конкуренции.
0
Он чрезвычайно убог. Позволяет отресайзить фотографию по весьма ограниченному набору алгоритмов. А превьшки-то бывают разные.
+1
Он еще и очень, очень медлительный.
+1
Прям чрезвычайно?
0
Прям да. Посмотрите его api и статью, на которую я дал ссылку.
0
По ссылке много букв сплошные хочуны на тему «было бы здорово», которые в принципе не решить без человеческого вмешательства. Ну, разве что реализовывать детекторы лиц.
А с простыми задачами — кропнуть, вписать целиком, вписать по ширине, вписать по высоте, отбить поля — с этим любые решения справляются, солр в том числе.
А с простыми задачами — кропнуть, вписать целиком, вписать по ширине, вписать по высоте, отбить поля — с этим любые решения справляются, солр в том числе.
-1
> По ссылке много букв
Хороший аргумент, возьму на вооружение.
> По сплошные хочуны на тему «было бы здорово»
Вообще-то это наиболее общий набор того, с чем приходится сталкиваться при разработке сайтов. Иногда бывают более специфические требования. И все они (и общие и специфические) реализуются с помощью imagekit.
> с этим любые решения справляются, солр в том числе
Приведите мне пожалуйста пример, как заполнить изображением квадрат 100×100. Заполнить значит, что после ресайза одна из сторон должна быть 100 пикселей, а вторая 100 или больше, в соответствии с пропорциями исходного изображения.
Хороший аргумент, возьму на вооружение.
> По сплошные хочуны на тему «было бы здорово»
Вообще-то это наиболее общий набор того, с чем приходится сталкиваться при разработке сайтов. Иногда бывают более специфические требования. И все они (и общие и специфические) реализуются с помощью imagekit.
> с этим любые решения справляются, солр в том числе
Приведите мне пожалуйста пример, как заполнить изображением квадрат 100×100. Заполнить значит, что после ресайза одна из сторон должна быть 100 пикселей, а вторая 100 или больше, в соответствии с пропорциями исходного изображения.
0
> А с простыми задачами
Вообще, мне интересно. Вот вы судя по всему используете sorl.thumbnail. И что вы делаете, когда у вас не «простой случай»? Идете и к дизайнеру и говорите «ты знаешь, я тут использую sorl.thumbnail, так что извини приятель, сделать как ты хотел не получится»?
Вообще, мне интересно. Вот вы судя по всему используете sorl.thumbnail. И что вы делаете, когда у вас не «простой случай»? Идете и к дизайнеру и говорите «ты знаешь, я тут использую sorl.thumbnail, так что извини приятель, сделать как ты хотел не получится»?
0
Пример приведите, что ли. Мне, каюсь, вообще сложно представить, что тумбам нужно кроме ресайза и кропа (и неважно, с сохранением пропорций или без).
0
Выше же привел, вы его представить не можете.
0
Не могу уяснить постановку задачи, виноват. Что-то типа такого?
{% thumbnail "x100" crop="100,100" as im%}
<img src="{{ im.url }}">
{% endthumbnail %}
0
> Что-то типа такого?
Я же заранее сказал, что это не решается sorl.thumbnail.
Такой код сделает из картинки из топика вот такую:
Размер 53×100, квадрат не заполнен.
Я же заранее сказал, что это не решается sorl.thumbnail.
Такой код сделает из картинки из топика вот такую:
Размер 53×100, квадрат не заполнен.
0
Почему же не решается?
sorl-thumbnail.readthedocs.org/en/latest/template.html#is-portrait
Более того, ничто не мешает написать свой тэг:
sorl-thumbnail.readthedocs.org/en/latest/examples.html?highlight=get_thumbnail#low-level-api-examples
А заводить дополнительные поля для каждого вида превью – это, извините, рак.
sorl-thumbnail.readthedocs.org/en/latest/template.html#is-portrait
Более того, ничто не мешает написать свой тэг:
sorl-thumbnail.readthedocs.org/en/latest/examples.html?highlight=get_thumbnail#low-level-api-examples
А заводить дополнительные поля для каждого вида превью – это, извините, рак.
0
> Почему же не решается?
Т.е. каждый раз, когда эта картинка нужна, придется написать минимум:
Уже каша. А у картинки еще другие атрибуты могут быть, а она еще в ссылку может оборачиваться.
Но формально, задача все же решена благодаря существованию для этого частного случая фильтра is_portrait. Давайте немного усложним: точно так же накрыть прямоугольник 120×100 пикселей.
> Более того, ничто не мешает написать свой тэг:
Где там про написание своего тега?
Т.е. каждый раз, когда эта картинка нужна, придется написать минимум:
{% if item.image|is_portrait %}
{% thumbnail item.image "100x" %}
<img src="{{ im.url }}">
{% endthumbnail %}
{% else %}
{% thumbnail item.image "x100" %}
<img src="{{ im.url }}">
{% endthumbnail %}
{% endif %}
Уже каша. А у картинки еще другие атрибуты могут быть, а она еще в ссылку может оборачиваться.
Но формально, задача все же решена благодаря существованию для этого частного случая фильтра is_portrait. Давайте немного усложним: точно так же накрыть прямоугольник 120×100 пикселей.
> Более того, ничто не мешает написать свой тэг:
Где там про написание своего тега?
0
Вы дальше собственного носа не видите, или нарочно игнорируете документацию:
{% thumbnail item.image "100x" %}
<p>Оберните картинку хоть в «Войну и мир» Толстого</p>
<a href="http://lmgtfy.com/?q=http%3A%2F%2Fsorl-thumbnail.readthedocs.org%2Fen%2Flatest%2F">
<img src="{{ im.url }}" width="{{ im.x }}" height="{{ im.y }}">
</a>
{% endthumbnail %}
-2
Я не понимаю, пример чего вы привели. Это никак не относится не к изображению 120×100 не к 100×100. Вот о чем я говорю: у нас получается 2 ветки и код сильно усложняется:
Сравните с:
{% if item.current %}
{% if item.image|is_portrait %}
{% thumbnail item.image "100x" as im %}
<img src="{{ im.url }}" width="{{ im.x }}" height="{{ im.y }}">
{% endthumbnail %}
{% else %}
{% thumbnail item.image "x100" as im %}
<img src="{{ im.url }}" width="{{ im.x }}" height="{{ im.y }}">
{% endthumbnail %}
{% endif %}
{{ item.name }}
{% else %}
<a href="{{ item.url }}">
{% if item.image|is_portrait %}
{% thumbnail item.image "100x" as im %}
<img src="{{ im.url }}" width="{{ im.x }}" height="{{ im.y }}">
{% endthumbnail %}
{% else %}
{% thumbnail item.image "x100" as im %}
<img src="{{ im.url }}" width="{{ im.x }}" height="{{ im.y }}">
{% endthumbnail %}
{% endif %}
{{ item.name }}
</a>
{% endif %}
Сравните с:
{% if item.current %}
<img src="{{ item.image_small.url }}" width="{{ item.image_small.x }}" height="{{ item.image_small.y }}">
{{ item.name }}
{% else %}
<a href="{{ item.url }}">
<img src="{{ item.image_small.url }}" width="{{ item.image_small.x }}" height="{{ item.image_small.y }}">
{{ item.name }}
</a>
{% endif %}
+1
Опять вы не читаете. Пример выше относится к:
И на каждую превьюшку вы будете добавлять поле в модель? А если у вас их 20 будет? Заказчик может закапризничать и захочет размеры поменять?
А для того, чтобы не усложнять код шаблона как раз и нужен get_thumbnail. Напишите свой тэг/метод/функцию, который/ая будет считать вам необходимые пропорции.
Уже каша. А у картинки еще другие атрибуты могут быть, а она еще в ссылку может оборачиваться.
И на каждую превьюшку вы будете добавлять поле в модель? А если у вас их 20 будет? Заказчик может закапризничать и захочет размеры поменять?
А для того, чтобы не усложнять код шаблона как раз и нужен get_thumbnail. Напишите свой тэг/метод/функцию, который/ая будет считать вам необходимые пропорции.
0
> Опять вы не читаете.
Да нет же, это вы. Мы обсуждаем конкретный пример, покрыть превьюшкой площадь 100×100. Там, где вы войну и мир написали, этого нет.
> А если у вас их 20 будет
Примерно столько и есть. Каждая в модели.
> Заказчик может закапризничать и захочет размеры поменять?
Это не каприз, а стандартная практика. Меняются размеры, добавляются фильтры, вотермарки. Потом очищается кеш.
> Напишите свой тэг/метод/функцию, который/ая будет считать
> вам необходимые пропорции.
Примеров, как правильно это делать что-то в документации не видно. А если с самого начла разбираться, как что работает, зачем тогда вообще использовать sorl-thumbnail?
У imagekit любая манипуляция делается проще простого. Создается фильтр — функция, принимающая картинку и отдающая другую картинку. Этот фильтр указывается в моделе. Все.
Да нет же, это вы. Мы обсуждаем конкретный пример, покрыть превьюшкой площадь 100×100. Там, где вы войну и мир написали, этого нет.
> А если у вас их 20 будет
Примерно столько и есть. Каждая в модели.
> Заказчик может закапризничать и захочет размеры поменять?
Это не каприз, а стандартная практика. Меняются размеры, добавляются фильтры, вотермарки. Потом очищается кеш.
> Напишите свой тэг/метод/функцию, который/ая будет считать
> вам необходимые пропорции.
Примеров, как правильно это делать что-то в документации не видно. А если с самого начла разбираться, как что работает, зачем тогда вообще использовать sorl-thumbnail?
У imagekit любая манипуляция делается проще простого. Создается фильтр — функция, принимающая картинку и отдающая другую картинку. Этот фильтр указывается в моделе. Все.
0
sorl.thumbnail — как вариант, когда нет доступа к конфигурации nginx или он стоит как сервер, HttpImageFilterModule nginx'a когда есть такая возможность) Последний позволит настроить кеширование, ресайз разный, даже поворот.
0
wiki.nginx.org/HttpImageFilterModule — вот тут про nginx, как выяснилось, не все знают про этот модуль.
0
Есть даже приложение специальное для Django использующее этот модуль nginx: django-nginx-image
0
Вот уж не ожидал её тут увидеть
+1
нужно было ее: habrastorage.org/storage2/758/b59/c72/758b59c72bad0aa1427a0cd8feff3d40.jpg в качестве подопытной картинки использовать))
0
Как-то не очень я понимаю подход с дополнительным полем для каждого тумбнейла в модели.
0
Опять заклюют, но Django это был мой мой любимый фильм в детстве, а от мелодии и сейчас «волосы шевелятся».
Ну, а блондинок я не очень… даже с такими достоинствами…
Ну, а блондинок я не очень… даже с такими достоинствами…
0
Я пользую иногда старый django-imagekit из ветки support/0.4.x после уже пошел такой бред как вверху описано в посте что под каждый размер надо добавлять поле в модель.
В старых версиях было удобно что создаешь spec файл с нужными размерами и процессорами и указываешь его в модели.
Вообще чаще всего достаточно простенького djangothumbnails.com
В старых версиях было удобно что создаешь spec файл с нужными размерами и процессорами и указываешь его в модели.
Вообще чаще всего достаточно простенького djangothumbnails.com
0
Sign up to leave a comment.
Удобная работа с картинками в Django