Обрезка изображений GWT

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

Я нашел ЭТО и ЭТО образцы кода как обрезать изображение на стороне клиента, но нет части пользовательского интерфейса, где пользователь может выбрать часть своего изображения, которое нужно обрезать.

Были также несколько похожих вопросов о SO (например и this GWT с Jcrop), но никто не привел пример части выбора изображения, использующего чистый GWT. Если у вас есть идея, как это сделать, пожалуйста, поделитесь, и я уверен, что другие люди будут использовать это в будущем.

Вот пример того, что я ищу: enter image description here

Ответ 1

GWT Cropper - это виджет, который позволяет обрезать изображение.

https://code.google.com/p/gwt-cropper/

Отредактировано в 2015 году: пока код Google будет закрыт, проект был перенесен в GitHub. Новый адрес http://gwt-cropper.co.uk/

Ответ 2

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

Вот ваши варианты:

  • Оберните Jcrop с помощью интерфейса JSNI.

    • Профи: вы должны включать JQuery и JCrop, которые являются небольшими и надежными
    • Против. Изучение того, как создать свою первую обертку JSNI, может быть болью.
  • Создайте свой собственный GWT Drag and Drop

    • Профи: "Чистый GWT"
    • Минусы. Вероятно, вы не будете обрабатывать все случаи, которые JCrop определил со временем, и не будут такими же эффективными.
  • Порт JCrop для GQuery

    • Плюсы: JCrop с открытым исходным кодом и всего около 1600 строк кода
    • Против: это ~ 1600 строк кода, которые, вероятно, будут намного больше при переносе на Java

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