Обрезать и центрировать аватар в Codename One, позволяя пользователю выбрать регион для обрезки - PullRequest
1 голос
/ 27 апреля 2019

Об обрезке и центрировании аватара в Codename One , я видел подобные примеры в руководстве, в Javadoc и в блоге, например, первый блок кода здесь: https://www.codenameone.com/javadoc/com/codename1/capture/Capture.html

Но мне нужно что-то другое и более сложное.

Основная проблема заключается в том, что лицо не всегда находится точно в центре фотографии.Некоторые приложения позволяют пользователю выбирать регион для обрезки.

Например, предположим, что после захвата фотографии оно выглядит автоматически обрезанным и отцентрированным так:

enter image description here

Конечно, это неправильно, я хочу, чтобы лев был в центре.В этом случае было бы неплохо, если бы пользователь мог ущипнуть льва, чтобы увеличить масштаб и перетащить его в центр области обрезки , получив что-то вроде этого:

enter image description here

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

1 Ответ

1 голос
/ 27 апреля 2019

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

Сложная часть правильно обрезает изображение на основе значений масштаба / панорамирования из класса ImageViewer.

...