Я хочу, чтобы мои пользователи могли загружать изображения в определенных ограничениях по размеру, поэтому требуется обрезка. Теперь я нашел два плагина: jcrop, а другой - cropper; Jcrop
использует подход на стороне сервера для обрезки изображений. Вот фрагмент из их документации:Обрезка на стороне сервера и обрезка на клиенте и отправка base64 строки?
Типичный рабочий процесс для обрезки функциональность в веб-приложении выглядит следующим образом:
Загрузить или выберите изображение, обрезать. Показать страницу с интерфейсом обрезки. Захват выбранных координат как значений формы При отправке формы. Сервер выполняет обработку изображения. Результирующая изображение сохраняется, заменяется, обновлены отображается, и т.д.
Хотя cropper
использование HTML5 canvas
, чтобы обрезать изображения на стороне клиента и отправить base64
строку на сервер, где сервер может декодировать его как изображение и сохранить его.
Мне лично нравится второй подход больше, так как я могу отправить строку внутри json
, помогая мне избежать типа контента , я могу продолжить использовать тип контента application/json
. Однако после прочтения jcrop-подхода я обеспокоен выполнением техники обрезки на стороне клиента. Какой подход даст лучшую производительность и охватит мобильные устройства? Каковы ограничения для каждого подхода, такие как максимальный размер файла и т. Д.
Если вы поддерживаете мобильные устройства, вы можете предоставить мобильному пользователю сокращенную версию изображения, чтобы установить их кадрирующие координаты, а затем выполнить фактическое обрезку на сервере.Я предлагаю это как из-за меньшего размера экрана, так и из-за того, что производительность холста на мобильных устройствах намного меньше, чем на полностью оснащенном рабочем столе. – markE