Обеспечение определенной ширины в масштабе? - PullRequest
4 голосов
/ 29 марта 2011

У нас есть требование клиента, чтобы для определенного масштаба изображения (масштаб тизера) ширина составляла всегда 160px независимо от соотношения изображения .Указание масштаба (160, 160) не работает для изображений, высота которых больше ширины.В этом случае будет использоваться 160px.

Есть идеи, как обеспечить фиксированное значение 160px в каждом случае?

Ответы [ 2 ]

4 голосов
/ 29 марта 2011

Я использовал эту шкалу на сайте, и она работала ОК:

image_scales = {'thumb': (150,600), 'mini': (200, 800)}

Идея состоит в том, чтобы иметь очень большую высоту, поэтому независимо от отношения изображения к изображению, оно всегда будет 150 или 200.ширина пикселя.

3 голосов
/ 29 марта 2011

В Plone 4 есть совершенно новый способ генерации весов, который может помочь с этой проблемой.Используя этот подход, вы можете сказать ему масштабировать изображение «вниз» вместо «вверх», что означает, что он будет масштабировать короткую сторону изображения до указанного размера, а не длинную сторону (так что изображение в итоге обрезается, но всегда заполняет указанную область).

При таком подходе вам не нужно определять масштабы в своей схеме, а просто включить что-то вроде следующего в свой шаблон.Шкала будет сгенерирована по требованию.

<img tal:define="scale context/@@images"
 tal:replace="structure python: scale.scale('image',
              width=160, height=160, direction='down').tag()" />

См. Страницу plone.app.imaging для получения дополнительных примеров такого подхода к масштабированию.

...