janfabry
  • 0
Гуру

Удобная обрезка миниатюр сообщений?

  • 0

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

Миниатюры постов должны быть размером 200 x 100 пикселей и исходить из одного из изображений, используемых в посте. Таким образом, в моем идеальном мире, когда вы нажимаете ссылку «Установить избранное изображение», вы получаете обзор уже включенных изображений, и когда вы нажимаете одно из них, вы можете самостоятельно определить область кадрирования (перемещая или изменяя ее размер, но сохраняя соотношение сторон 2×1). Когда вы нажимаете «ОК», миниатюра нового сообщения сохраняется с исходным вложением ( _wp_attachment_metadata['sizes']['post-thumbnail'] например, в поле метаданных), а не как новое вложение. Использование изображения, которое уже используется в качестве миниатюры сообщения для другого сообщения, не должно быть разрешено или, по крайней мере, должно быть предупреждение.

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

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

Обновление: пример пользовательского интерфейса

Мне очень нравится интерфейс средства выбора изображений адресной книги Mac OS X: вы выбираете изображение и изменяете размер миниатюры с фиксированным соотношением сторон с помощью ползунка. Вы также можете перетаскивать базовое изображение. Вы можете расширить эту идею до нескольких размеров изображения (например, у меня есть post-thumbnail и post-thumbnail-1/2 половина этого размера). Пусть пользователь выбирает размеры, которые он сейчас редактирует, с помощью флажков и рисует на экране соответствующие прямоугольники обрезки.

Обрезка изображений из адресной книги в действии

Share
  1. @Jan Fabry — Моим самым первым платным проектом WordPress был плагин для обрезки изображений до того, как обрезка появилась в WordPress. Это значительно отличалось от того, о чем вы просите, иначе я бы включил это в качестве ответа. Но то, что вы хотите, не должно быть слишком сложно написать, если вы мотивированы…

    • 0
    • @Mike: Я видел это однажды на вашем веб-сайте и надеялся, что это где-нибудь будет доступно. Даже если он не соответствует всем пунктам моего (обширного) списка пожеланий, он может послужить хорошим началом.

      • 0
    • @Mike — мне также было бы очень интересно просмотреть любой код, который вы, возможно, создали или изменили, связанный с обрезкой изображения. Я отчаянно пытался добавить jcrop в настраиваемый метабокс, который позволил бы добавлять и обрезать изображения, при этом используя встроенную медиагалерею WordPress.

      • 0
    • Привет @Jan Fabry и @NetConstructor.com — я только что просмотрел код, и, поскольку это был мой первый плагин для WP, я слишком смущен, чтобы выпускать его, настолько он плох. Я бы хотел поработать над новым решением для выпуска здесь, но это может занять некоторое время…

      • 0
    • Не стесняйся, Майк, старый код всегда плох в глазах автора. Это просто прогресс :). @Jan — в вашем примере пользовательского интерфейса мне кажется, что размер миниатюры сообщения каким-то образом предопределен. Можете ли вы рассказать об этом больше?

      • 0
    • код уже готов к выпуску? может гитхаб это? Я умираю от желания интегрировать подобную функциональность в свой котел.

      • 0
    • Мне тоже очень интересно, что/как ты это сделал! Пожалуйста, поделитесь кодом. Работает ли ваш код с использованием медиатеки wordpress по умолчанию и позволяет ли он вам создать простой метабокс на экране редактирования поста, где вы можете вызвать определенное изображение и скопировать его только для определенного размера, который вы создали, например «new_thumb», как определено через что-то вроде add_image_size(‘new_thumb’, 200, 100, true);? Идеальной ситуацией было бы иметь что-то вроде создателя изображения заголовка с возможностью изменять каждый определенный размер изображения на основе отдельных метабоксов для каждого определенного размера.

      • 0
    • @JanFabry вы уже выпустили этот код в виде плагина? Я бы с удовольствием порекомендовал его тем, кому нужна эта функция!

      • 0
    • @jan-fabry Как прошла эта функция? Любой успех?

      • 0
    • В ядре WordPress уже есть код обрезки изображений (HTML, JS и PHP). Я думаю, что хороший плагин повторно использовал бы это. Это не обязательно, просто так. Вы совершенно правы в том, что пример пользовательского интерфейса, нарисованный Яном, нуждается в чем-то подобном.

      • 0
    • @hakre, последнее, на что ссылался Wyck, — это jcrop, который был интегрирован в ядро ​​wp еще в 2.8. Я помню, как читал об этом тогда, но я не могу найти никакой информации о том, что он действительно используется, кроме одного плагина в репозитории, который, по всем сведениям, сломан.

      • 0
    • @matt: если он был интегрирован в ядро ​​​​(я не знаю всех особенностей пользовательского интерфейса обрезки в ядре прямо сейчас, который там есть), я предполагаю, что он используется для основной функции пользовательского интерфейса изображения. Эта функция доступна не всегда, а только в том случае, если доступны определенные библиотеки PHP или системных образов. Извините за неконкретность, но я просто пока не вникал в основную реализацию. Но я знаю, что есть 😉

      • 0
    • @cnix: Спасибо за этот ответ, но это не то, что я ищу. Я хочу, чтобы конечный пользователь мог определить область, которую следует обрезать, а не я как дизайнер сайта. Таким образом, площадь может варьироваться от изображения к изображению.

      • 0
    • Действительно, вы можете выполнить обрезку с помощью CSS, чтобы избежать множественных размеров, но как вы позволите пользователю (автору сообщения) определить область обрезки, которая должна отображаться?

      • 0
    • Спасибо за ваше разъяснение. Это предполагает, что пользователь знает расположение пикселей желаемой области обрезки? На самом деле я ищу более графический способ (например, текущий редактор изображений, но предназначенный для публикации миниатюр, а не обычных миниатюр).

      • 0
    • Надеюсь, вы хотите, чтобы это был плагин, а не какой-то хак. Вы можете указать некоторые параметры по умолчанию, которых должно быть достаточно в большинстве случаев: углы, центр, центр по краям и т. д. (все легко вычисляются). Я бы воздержался от предложения бесплатного ввода, так как люди могут сильно испортить поток сайта, если они введут дерьмо. Предложение графического определителя клипа (см. Zenphoto для реализации) — это хорошо, я думаю, но принципы использования значений, независимо от того, какие они получены, остаются прежними; вам просто нужно создать графический интерфейс. В этом я не могу вам помочь.

      • 0
    • Спасибо за предложение. Я посмотрел на Scissors (и знал, что кто-то обновил его до 3.0), но я думаю, что он слишком гибкий для того, что я хочу: должен быть кадратор, который будет обрезать до заданного размера. Ножницы могут делать гораздо больше и поэтому могут запутать моих конечных пользователей.

      • 0
  2. Код пока беспорядок, но вроде работает даже в IE 8. Я планирую выложить его в репозиторий, а пока можно поиграться с моей текущей версией. Для доступа к нему нужно нажать кнопку «Редактировать изображение» при добавлении или редактировании изображения, он заменяет обычный редактор изображений (их очень сложно совмещать). Поскольку большая часть области администратора использует обычную миниатюру, а моя текущая версия редактирует миниатюру сообщения, может показаться, что код не имеет никакого эффекта, но попробуйте, показав миниатюру сообщения, и вы должны увидеть, как она изменится.

    Для этого плагина требуется мой On-Demand Image Resizer, который также все еще беспорядок, чтобы выполнить фактическое изменение размера.

    Пример изображения в кропере

    • 0
  3. Лучше всего использовать кадрирование изображения на основе javascript, а затем php в сочетании с ImageMagick или Image GD.

    Это должно быть написано в ваших функциях или в качестве плагина, поскольку я не знаю никаких готовых плагинов WordPress, что удивительно.

    Существует обрезка изображения YUI с возможностью сохранения на основе php http://developer.yahoo.com/yui/examples/imagecropper/conn_crop.html

    Вот другой учебник о том, как использовать обрезку jquery с php
    http://www.webmotionuk.co.uk/php-jquery-image-upload-and-crop/

    Третий вариант очень похож на приведенную выше ссылку, используя ту же обрезку jquery, но другой код. http://www.leonkessler.com/blog/?p=132

    Вот еще одно использование jquery jcrop вместо этого, http://www.talkincode.com/jcrop-extension-implementation-in-php-932.html

    Кто хочет новый плагин, он наверняка будет популярен 🙂

    • 0
  4. Предполагая, что вы уже добавили поддержку пост-миниатюр, поскольку вы говорите об опции «Избранное изображение».

    Если это так, у вас есть один вариант, чтобы добавить новый размер изображения в массив загрузки. Итак, по умолчанию у вас есть эскиз, средний, большой. В следующем фрагменте кода это добавляет 4-е изображение к этому ассортименту в зависимости от желаемого размера. Этот фрагмент кода будет добавлен в ваш файл functions.php.

    add_image_size( 'new_thumb', 200, 100, true );
    

    «new-thumb» = имя нового пользовательского изображения
    «200» = ширина
    «100» = высота
    «true» = параметр жесткой обрезки. Это заставит изображение быть обрезанным до определенной ширины/высоты. Без этого он просто масштабируется до пропорций.

    Теперь, чтобы отобразить новую миниатюру на странице или в массиве сообщений, вы должны вставить в свой HTML-код следующее:

    <?php the_post_thumbnail('new_thumb'); ?>
    
    • 0
  5. Возможно, вы захотите использовать CSS, чтобы иметь большую гибкость, исправить миниатюры в своей теме (если хотите) и избежать беспорядка в файлах:

    http://www.seifi.org/css/creating-thumbnails-using-the-css-clip-property.html

    Помните, что изображение будет загружено целиком, поэтому не используйте для этого свои 3-мегабайтные оригиналы.

    Обновление по запросу Яна: если вы хотите динамическое отсечение, рассмотрите:

    • Для user=administrator создайте CSS через PHP; вы можете просто сослаться на php, который читает соответствующие настройки и соответствующим образом настроить параметры отсечения.
    • Для user=visitor используйте JavaScript для изменения параметров отсечения в атрибуте стиля изображения.
    • В качестве менее инвазивного решения рассмотрите возможность создания шорткода (с помощью отличного плагина Shortcode Exec PHP), например [thumb w=?? h=??]url[/thumb], который можно преобразовать в соответствующий тег HTML с помощью встроенного CSS.
    • 0
  6. Есть старый плагин под названием WP Post Thumbnail, который мы иногда используем. Это не идеально, и в последней версии WP есть небольшие ошибки (она не обновлялась с 2008 года, поэтому она не обязательно надежна). http://wordpress.org/extend/plugins/wp-post-thumbnail/

    • 0
  7. Я думаю, вы ищете это: http://wordpress.org/support/topic/scissors-for-wordpress-29-also-works-on-30-hurray

    Я не пробовал это, но он должен предложить вам функциональность, которую вы ищете.

    Оригинальная страница плагина здесь. http://wordpress.org/extend/plugins/scissors/

    Мне это нужно для проекта, над которым я тоже работаю.

    • 0
  8. Я думаю, что окончательным решением этой проблемы будет изменение плагина с http://www.seoadsensethemes.com/wordpress-wp-post-thumbnail-plugin/.

    и настройте его так, чтобы любые пользовательские размеры изображений, определенные в вашем файле functions.php (с помощью add_image_size( 'new_thumb', 200, 100, true ); ), автоматически использовались, а затем получите код для замены (или расширения) ссылки «редактировать», когда вы хотите изменить изображение.

    Используя этот подход, WordPress может продолжать создавать свои применимые размеры изображения, как обычно, но если вы хотите специально изменить обрезанную область любого конкретного изображения, у вас есть возможность сделать это, что, в свою очередь, заменит автоматически сгенерированное изображение для этого размера. Хммм… хотя это звучит сбивающе с толку, перечитывая это снова, это именно то, чего мне не хватает.

    В настоящее время я считаю, что плагин сохраняет эти пользовательские размеры изображений в настраиваемое поле в сообщении, а не в сообщении для применимого изображения.

    • 0
  9. Я решил обрезать миниатюры, используя родной «wp_get_attachment_image»… вот пример галереи изображений с обрезанными миниатюрами

    http://wpworks.wordpress.com/2010/12/27/image-gallery-with-image-crop/

    С уважением

    • 0

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

You must login to add an answer.