Змінення розміру зображень до фактичного розміру, що використовується в редакторі?


20

Чи є спосіб змінити розмір зображень до фактичного розміру, який вони будуть відображатися в публікації? У мене є користувачі, які імпортують велике зображення, а потім змінюють його розмір у візуальному редакторі. Це легко, оскільки вони можуть просто перетягувати зображення до потрібного розміру, попередньо не відкриваючи редактор зображень, змінюючи розмір зображення, зберігаючи його та завантажуючи його як окремий додаток. Звичайно, це іноді призводить до зображення, яке шириною 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: Дійсно, сьогодні я досліджував можливі плагіни, і деякі застосовують такий підхід. Якщо у вас є щось додати до мого списку , будь ласка, зробіть це все, що можна редагувати.
Ян Фабрі

Відповіді:


11

Я створив два плагіни, які разом повинні вирішити мої потреби. Наразі вони знаходяться на ранній стадії альфа, і всі коментарі вітаються.

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

Другий плагін, розмір тегів img , змінює <img>теги, щоб їх srcатрибути включали дані про ширину та / або висоту. Це дозволяє першому плагіну обслуговувати правильні зображення. Разом вони роблять те, що я хочу, і мені потрібно створити функцію одноразового запуску для перетворення всіх існуючих публікацій, але це повинно бути легко (я не хочу залучатися до the_contentчогось, що має працювати лише один раз).

Третій "бонусний" плагін, віртуальні проміжні зображення , перехоплює створення проміжних зображень під час завантаження нового зображення в WordPress. Оскільки вони все ще створюються першим плагіном за запитом, це дозволяє задавати кілька розмірів зображення, не займаючи місця на диску, якщо вони фактично не використовуються. Це не потрібно для того, щоб два перші працювали, але це було легким доповненням, і це підкреслює той факт, що мені все одно потрібно обійтись навколо редактора зображень WordPress, але я це зроблю, коли створять свій редактор мініатюр , який також використовувати перший плагін.


1
Ці звуки справді відмінні! Я не можу чекати, коли встигнуть спробувати їх, коли мені знадобляться для реальних сценаріїв.
MikeSchinkel

Чудові речі. Ви плануєте додати їх до сховища плагінів Worddress?
хакре

@hakre: Так. Одного разу я підготував їх до експертної оцінки :-)
Ян Фабрі

4

Я здійснив пошук у каталозі плагінів "resize"або "crop"(останній для іншого питання ) та відзначив свої висновки в загальнодоступній електронній таблиці Google . Пошук плагінів дуже заплутаний у своїх результатах (остання сторінка "resize"пошуку показує "Показано 145-150 з 273 плагінів"), тому я, можливо, пропустив декілька. Напівпов’язані примітки: всі, здається, думають, що світу потрібен ще один плагін слайд-шоу. Мало хто, здається, усвідомлює, що content_save_preможе бути кращим фільтром для важкого розбору, ніж the_content.

Я ще не перевіряв жодного з цих плагінів, але ось список плагінів, який, здається, робить те, що я хочу. Я додав номер версії "Сумісний до" у дужках.

  • ChoiceCuts Image Juggler , з кількома функціями обробки зображень, доступними через API (3.0.1)
  • AutoThumb , переписує URL-адреси на обробник, який використовує phpThumb (2.9.2)
  • Зображення зображень за допомогою спеціального [img]короткого коду (2.9.2)
  • com_resize , переписує URL-адреси на обробник, який використовує phpThumb, а також зовнішні зображення (2.6)
  • ImageScaler , створює нові розміри за потреби та змінює URL-адреси в зображеннях (2.3)
  • ImageScaler Modded , трохи модифікована версія ImageScaler (2.3.1)

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

Ці плагіни обмежують зображення певним максимальним розміром (чим це відрізняється від зазначення $content_width?):

  • JP-редизайн зображень , перевіряє як гарячі посилання, так і негабаритні зображення (лише якщо вони занадто великі, не якщо вони просто змінені) (3.0.1)
  • Hunged Image Fit , перевіряє занадто великі зображення (3.0.0)

Наступний плагін цікавий з інших причин:

Це повідомлення у спільноті Wiki, тому вона може бути оновлена, якщо ви знайдете нові плагіни.


0

Що з використанням тимчасового пальця та передачі змінної для автоматичної зміни розміру / розмірів зображення та рівня масштабування? Таким чином, оригінальні розміри зображень все ще можуть бути збережені. Якщо вам потрібні приклади в цьому рядку, дайте мені знати.


0

Wordpress пропонує три розміри за замовчуванням (малий, середній та великий), які можна налаштувати. Якщо ви користуєтесь ними, Wordpress створює розміри копій. Мабуть, хороший стиль використовувати ці та встановити число, щоб вони відповідали поточному стилю. Це призводить до того, що зображення не мають різного розміру по всій сторінці та дозволяють глобальні коригування, коли тема змінюється.


Я знаю, що найкраще дотримуватися заздалегідь заданих розмірів зображення, але мої клієнти цього не роблять :-) Якщо вони можуть змінити розмір зображення в редакторі, то цілком логічно, що система дотримується цього вибору.
Ян Фабрі

Що ж, ти зможеш усунути таку можливість і змусити їх працювати чисто;)
Рафаель

Це також цікаве питання: "Як відключити функцію зміни розміру в TinyMCE?" Якщо ви знаєте відповідь на це, будь ласка, створіть нове запитання та відповідь на нього самостійно, воно, ймовірно, буде корисним для інших.
Ян Фабрі

0

Нещодавно випущений плагін Image Pro, здається, робить саме це. Я ще не перевіряв себе, демонстрація виглядає дуже вражаючою, зауважте, погана сумісність браузера (наразі лише Firefox).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.