Пользовательский размер изображения /миниатюра - обрезание до формата, даже если исходное изображение меньше заданных размеров

Обычно, когда вы устанавливаете собственный размер изображения с использованием жесткой обрезки - например, add_image_size( 'custom-size', 400, 400, true ); - вы получаете следующие результаты:

  • # 1 Загружено изображение: 600x500> Миниатюра: 400x400.
  • # 2 Загруженное изображение: 500x300> Миниатюра: 400x300.
  • # 3 Загруженное изображение: 300x200> Миниатюра: 300x200.

Однако то, что я хотел бы сделать, - это когда загруженное изображение меньше заданной ширины, или высоты или того и другого, размера пользовательского изображения, например. примеры # 2 & # 3 выше - вместо того, чтобы изображение было обрезано, чтобы оно соответствовало этим размерам - оно также обрезано в соответствии с их соотношением сторон (которое в данном случае равно 1: 1):

  • # 1 Загружено изображение: 600x500> Миниатюра: 400x400.
  • # 2 Загруженное изображение: 500x300> Миниатюра: 300x300 .
  • # 3 Загруженное изображение: 300x200> Миниатюра: 200x200 .

Я не думаю, что это возможно с использованием стандартных параметров add_image_size, но возможно ли использовать другую функцию или hook, которая модифицирует функцию add_image_size?

Или есть плагин, который добавляет эту функциональность?

Любая информация, которую любой может предоставить, будет с благодарностью.

7 голосов | спросил Joey Joe Joe Junior Shabadoo 24 J000000Sunday16 2016, 15:16:19

1 ответ


0

Вы правы, что это просто не работает.

Если все в порядке, подумайте о своем вопросе, тем не менее, вы можете получить правильный результат в современных браузерах, используя выбор размеров изображений и отзывчивых изображений.

Если вы используете такой код:

add_image_size( 'custom-size-small', 200, 200, true );
add_image_size( 'custom-size-medium', 300, 300, true );
add_image_size( 'custom-size-large', 400, 400, true );

... и в ваших шаблонах что-то вроде:

wp_get_attachment_image( $image_ID, 'custom-size-small' )

... затем по умолчанию (WP 4.4 и более поздние) вы получите тег изображения с наименьшей версией из вашего набора как src и более крупные размеры в атрибуте srcset, какие новые браузеры будут выбирать и отображать самую большую подходящую версию.

Итак, если конкретное изображение не имеет более крупной версии, это не имеет значения. Изображение 300x200 будет иметь код 200x200 версия, эта версия будет единственной в HTML, и все браузеры покажут ее.

Я работал над этим при настройке чувствительных изображений, чтобы получить хорошую производительность в браузерах, которые поддерживают только src, а не srcset

ответил Andy Macaulay-Brook 24 J000000Sunday16 2016, 15:38:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132