janfabry
  • 0
Гуру

Изменение размера изображений до фактического размера, используемого в редакторе?

  • 0

Есть ли способ изменить размер изображений до фактического размера, который они будут отображаться в сообщении? У меня есть пользователи, которые импортируют большое изображение, а затем изменяют его размер в визуальном редакторе. Это легко, так как они могут просто перетаскивать изображение до нужного размера, не открывая сначала редактор изображений, не изменяя размер изображения, не сохраняя его и не загружая как отдельное вложение. Конечно, это иногда приводит к изображению шириной 100 пикселей в посте, но на самом деле 1500 пикселей.

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

Конечно, все существующие посты также должны быть обработаны один раз. <img> теги там могут иметь только width, только height, или ни одного из них: все это должно быть очищено, чтобы все они имели правильное width и height изображение такого размера.

Share
  1. Согласны ли вы с решением на стороне сервера, которое изменяет размеры изображений на лету на основе параметров получения, передаваемых в существующий URL-адрес изображения? Apache/Mod_Rewrite?

    • 0
  2. Я создал два плагина, которые вместе должны решать мои задачи. В настоящее время они находятся на ранней стадии альфа-тестирования, поэтому приветствуются все комментарии.

    Базовый плагин — это On-Demand Resizer. Этот плагин отслеживает запросы на наличие несуществующих файлов в каталоге загрузки и при необходимости создает изображения запрошенного размера. Например, image-200x100.jpg создаст и вернет image.jpg, но с размером 200 на 100 пикселей. Изображение сохраняется под этим именем в каталоге, поэтому дальнейшие запросы обрабатываются непосредственно сервером.

    Второй плагин Resize img tags изменяет <img> теги таким образом, чтобы их src атрибуты включали данные о ширине и/или высоте. Это позволяет первому плагину обслуживать правильные изображения. Вместе они делают то, что я хочу, и мне нужно только создать однократную функцию для преобразования всех существующих сообщений, но это должно быть легко (я не хочу подключаться the_content к чему-то, что должно выполняться только один раз).

    Третий «бонусный» плагин, Виртуальные промежуточные изображения, перехватывает создание промежуточных изображений при загрузке нового изображения в WordPress. Поскольку они по-прежнему создаются первым подключаемым модулем по запросу, это позволяет вам указать несколько размеров изображений, не занимая дискового пространства, если они фактически не используются. Это не нужно для работы первых двух, но это было простое дополнение, и оно подчеркивает тот факт, что мне все еще нужно работать с редактором изображений WordPress, но я сделаю это, когда буду создавать свой редактор эскизов, который также используйте первый плагин.

    • 0
  3. Я искал в каталоге плагинов "resize" или "crop" (последнее для другого вопроса ) и отметил свои выводы в общедоступной электронной таблице Google. Поиск плагинов очень сбивает с толку по количеству результатов (последняя страница "resize" поиска показывает «Показано 145-150 из 273 плагинов»), поэтому я мог пропустить несколько. Наполовину связанные примечания: кажется, все думают, что миру нужен еще один плагин для слайд-шоу. Немногие, кажется, понимают, что это content_save_pre может быть лучший фильтр для тяжелого синтаксического анализа, чем the_content .

    Я еще не тестировал ни один из этих плагинов, но вот список плагинов, которые, кажется, делают то, что я хочу. Я добавил номер версии «Совместимо до» в скобках.

    Личные мысли: первые четыре переписывают URL-адрес динамической страницы (что-то вроде /wp-content/plugins/my-plugin/image.php?src=[original src]&w=100&h=50 ) с различными формами кэширования. Я предпочитаю реальное изображение, которое создается по мере необходимости, аналогично подходу ImageScaler. Однако я бы разделил это (и включил предложение hakre в комментарии) и сначала переписал бы все URL-адреса с /wp-content/uploads/2010/11/image.jpg на /wp-content/uploads/2010/11/image-100x50.jpg, а затем позволил бы сценарию создать недостающие изображения. Первый запрос этого образа создает образ, все последующие запросы используют этот созданный образ. Это также позволяет мне разделить функциональность между разными плагинами. Я опубликую это решение в отдельном ответе.

    Эти плагины ограничивают изображения до определенного максимального размера (Чем это отличается от указания $content_width ?):

    • JP-redesign-images проверяет как хотлинки, так и изображения увеличенного размера (только если они слишком большие, а не только измененные размеры) (3.0.1)
    • Hungred Image Fit, проверяет слишком большие изображения (3.0.0)

    Следующий плагин интересен и по другим причинам:

    Это сообщение вики-сообщества, поэтому его можно обновить, если вы найдете новые плагины.

    • 0
  4. Как насчет использования timthumb и передачи переменной для автоматического изменения размера/размеров изображения и уровней масштабирования? Таким образом, можно сохранить исходные размеры изображения. Если вам нужны примеры по этой линии, дайте мне знать.

    • 0
  5. WordPress предлагает три размера по умолчанию (маленький, средний, большой), которые можно настроить. Если вы используете их, WordPress создает копии с измененным размером. Вероятно, это хороший стиль, чтобы использовать их и установить число так, чтобы они соответствовали текущему стилю. Это приводит к тому, что изображения не имеют разных размеров по всей странице и допускают глобальные настройки при изменении темы.

    • 0
  6. Недавно выпущенный плагин Image Pro, кажется, делает именно это. Сам еще не проверял, демо выглядит очень впечатляюще, обратите внимание на плохую совместимость с браузерами (на данный момент только для Firefox).

    • 0

Оставить ответ

You must login to add an answer.