Есть ли способ изменить размер изображений до фактического размера, который они будут отображаться в сообщении? У меня есть пользователи, которые импортируют большое изображение, а затем изменяют его размер в визуальном редакторе. Это легко, так как они могут просто перетаскивать изображение до нужного размера, не открывая сначала редактор изображений, не изменяя размер изображения, не сохраняя его и не загружая как отдельное вложение. Конечно, это иногда приводит к изображению шириной 100 пикселей в посте, но на самом деле 1500 пикселей.
Есть ли плагин, который делает это при сохранении нового сообщения? Я хотел бы сохранить существующее полноразмерное изображение (для ссылки или последующего изменения размеров), но просто добавить дополнительный размер (и сохранить его в _wp_attachment_metadata
объекте), чтобы в этом посте было изображение правильного размера и ссылка на полноразмерная приставка.
Конечно, все существующие посты также должны быть обработаны один раз. <img>
теги там могут иметь только width
, только height
, или ни одного из них: все это должно быть очищено, чтобы все они имели правильное width
и height
изображение такого размера.
Согласны ли вы с решением на стороне сервера, которое изменяет размеры изображений на лету на основе параметров получения, передаваемых в существующий URL-адрес изображения? Apache/Mod_Rewrite?
@hakre: Вы имеете в виду фильтр после сохранения, который проходит через сообщение и перезаписывает каждое изображение как
image.png?w=300&h=400
, илиimage-300x400.png
, которое я затем подбираю через Mod_Rewrite и изменяю размер (и кеширую) по запросу? Является ли это преимуществом по сравнению с однократным созданием изображений с измененным размером (в этом действии после сохранения) и их обслуживанием в виде статических файлов?@Jan Fabry Да, это то, что я имел в виду. Преимущество в том, что вы создаете изображение только по запросу, поэтому, пока автор редактирует сообщение, это не создаст файлы как таковые. Помимо отсутствия блокировки редактирования, он более отделен от wp, поэтому вы даже можете создать какую-то серверную службу, экстравагантное кэширование CDN или что-то еще. 🙂 — wp.com делает что-то подобное, если я правильно понимаю.
В сочетании с кэшированием этот подход действительно работает. Я бы предположил, что для этого есть плагин. Вы также можете запустить установку Zenphoto вместе с плагином, таким как Zenphoto Gallery (мой собственный: lmazy.verrech.net/zenphoto-gallery )
@Raphael: Действительно, сегодня я исследовал возможные плагины, и некоторые используют этот подход. Если у вас есть что добавить в мой шорт -лист, сделайте это, он доступен для редактирования всеми.
Звучат действительно превосходно! Я не могу дождаться, когда у меня будет время опробовать их, когда они мне понадобятся для реальных сценариев.
Отличный материал. Вы планируете добавить их в репозиторий плагинов worpdress?
@hakre: Да, действительно. Как только я подготовил их для экспертной оценки 🙂
Я знаю, что лучше придерживаться предопределенных размеров изображения, но мои клиенты этого не делают 🙂 Если они могут изменить размер изображения в редакторе, вполне логично, что система следует этому выбору.
Ну, вы могли бы удалить эту возможность и заставить их работать чисто;)
Тоже интересный вопрос: «Как отключить функцию изменения размера в TinyMCE?» Если вы знаете ответ на этот вопрос, пожалуйста, создайте новый вопрос и ответьте на него сами, возможно, он будет полезен другим.
Я создал два плагина, которые вместе должны решать мои задачи. В настоящее время они находятся на ранней стадии альфа-тестирования, поэтому приветствуются все комментарии.
Базовый плагин — это On-Demand Resizer. Этот плагин отслеживает запросы на наличие несуществующих файлов в каталоге загрузки и при необходимости создает изображения запрошенного размера. Например,
image-200x100.jpg
создаст и вернетimage.jpg
, но с размером 200 на 100 пикселей. Изображение сохраняется под этим именем в каталоге, поэтому дальнейшие запросы обрабатываются непосредственно сервером.Второй плагин Resize img tags изменяет
<img>
теги таким образом, чтобы ихsrc
атрибуты включали данные о ширине и/или высоте. Это позволяет первому плагину обслуживать правильные изображения. Вместе они делают то, что я хочу, и мне нужно только создать однократную функцию для преобразования всех существующих сообщений, но это должно быть легко (я не хочу подключатьсяthe_content
к чему-то, что должно выполняться только один раз).Третий «бонусный» плагин, Виртуальные промежуточные изображения, перехватывает создание промежуточных изображений при загрузке нового изображения в WordPress. Поскольку они по-прежнему создаются первым подключаемым модулем по запросу, это позволяет вам указать несколько размеров изображений, не занимая дискового пространства, если они фактически не используются. Это не нужно для работы первых двух, но это было простое дополнение, и оно подчеркивает тот факт, что мне все еще нужно работать с редактором изображений WordPress, но я сделаю это, когда буду создавать свой редактор эскизов, который также используйте первый плагин.
Я искал в каталоге плагинов
"resize"
или"crop"
(последнее для другого вопроса ) и отметил свои выводы в общедоступной электронной таблице Google. Поиск плагинов очень сбивает с толку по количеству результатов (последняя страница"resize"
поиска показывает «Показано 145-150 из 273 плагинов»), поэтому я мог пропустить несколько. Наполовину связанные примечания: кажется, все думают, что миру нужен еще один плагин для слайд-шоу. Немногие, кажется, понимают, что этоcontent_save_pre
может быть лучший фильтр для тяжелого синтаксического анализа, чемthe_content
.Я еще не тестировал ни один из этих плагинов, но вот список плагинов, которые, кажется, делают то, что я хочу. Я добавил номер версии «Совместимо до» в скобках.
[img]
шорткод (2.9.2)Эти плагины ограничивают изображения до определенного максимального размера (Чем это отличается от указания
$content_width
?):Следующий плагин интересен и по другим причинам:
Это сообщение вики-сообщества, поэтому его можно обновить, если вы найдете новые плагины.
Как насчет использования timthumb и передачи переменной для автоматического изменения размера/размеров изображения и уровней масштабирования? Таким образом, можно сохранить исходные размеры изображения. Если вам нужны примеры по этой линии, дайте мне знать.
WordPress предлагает три размера по умолчанию (маленький, средний, большой), которые можно настроить. Если вы используете их, WordPress создает копии с измененным размером. Вероятно, это хороший стиль, чтобы использовать их и установить число так, чтобы они соответствовали текущему стилю. Это приводит к тому, что изображения не имеют разных размеров по всей странице и допускают глобальные настройки при изменении темы.
Недавно выпущенный плагин Image Pro, кажется, делает именно это. Сам еще не проверял, демо выглядит очень впечатляюще, обратите внимание на плохую совместимость с браузерами (на данный момент только для Firefox).