1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/isrc_ohos-u-crop_ohos

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

uCrop_ohos

Этот проект представляет собой адаптацию и портирование открытого проекта uCrop для платформы HarmonyOS. Исходный Android проект можно найти по меткам проекта и адресу GitHub (https://github.com/Yalantis/uCrop). Также статья о данном проекте была опубликована в сообществе и доступна по адресу (https://harmonyos.51cto.com/posts/3773).

Описание проекта

  • Название проекта: Открытый программный модуль для обрезки изображений
  • Серия: Адаптация третьих сторон для HarmonyOS
  • Функционал: Поддержка обрезки изображений различных форматов
  • Состояние портирования: Реализованы основные функции
  • Различия при использовании: Есть (см. руководство пользователя)
  • Версия SDK: 5
  • Версия DevEco Studio: 2.1 beta3
  • Автор проекта: Уэ Шеньньяо
  • Электронная почта: isrc_hm@iscas.ac.cn
  • Адрес документации исходного проекта: https://github.com/Yalantis/uCrop Пример изображения Пример изображения Пример изображения

Инсталляция

(Если виртуальная машина не имеет библиотек изображений, могут возникнуть белые экраны. После конфигурации сертификата используйте реальное устройство.)

  1. Скачайте компонент har uCrop.

  2. Запустите DevEco Studio и импортируйте скачанный har-пакет в директорию "entry -> libs".Пример изображения

  3. В файле build.gradle уровня модуля добавьте зависимость, добавив ссылку на HAR-пакет в директории libs и зависимости okhttp, затем выполните команду gradle-sync.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.har'])
    implementation "com.squareup.okhttp3:okhttp:3.12.1"
	...
}

Руководство по использованию (можно использовать пример из модуля entry)

  1. Выберите изображение для обрезки и получите его URI.
// URI изображения с интернета
Uri uri_i = Uri.parse("https://gimg2.baidu.com/image_search/src=http%3A%2F%2F2e.zol-img.com.cn%2Fproduct%2F56%2F456%2Fce88hkGbFnV8Y.jpg&refer=http%3A%2F%2F2e.zol-img.com.cn&app=2002&size=f9999%2C10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1617791968&t=8e9676cb3c0536d46830d1090ad970f4");
  1. Создайте локальный URI для хранения изображения перед обрезкой.
// Локальный URI
String filename = "test.jpg";
PixelMap.InitializationOptions options = new PixelMap.InitializationOptions();
options.size = new Size(100, 100);
PixelMap pixelmap = PixelMap.create(options);
Uri uri_o = saveImage(filename, pixelmap);

Пример использования метода saveImage можно найти в модуле entry.

  1. Используйте два URI для инициализации UcropView, чтобы изображение было загружено в UcropView. UcropView нативно поддерживает жесты для перемещения, масштабирования и поворота изображения.
UcropView uCropView = new UCropView(this);
try {
    uCropView.getCropImageView().setImageUri(uri_i, uri_o);
    uCropView.getOverlayView().setShowCropFrame(true);
    uCropView.getOverlayView().setShowCropGrid(true);
    uCropView.getOverlayView().setDimmedColor(Color.BLACK.getValue());
} catch (Exception e) {
    e.printStackTrace();
}
```4. Добавьте кнопку для вырезания изображения. При нажатии на эту кнопку изображение будет вырезано и сохранено.

   ```java
   // Кнопка вырезания
   Button button = new Button(this);
   button.setText("Вырезать");
   button.setTextSize(100);
   button.setClickedListener(new Component.ClickedListener() {
           @Override
           public void onClick(Component component) {
               cropAndSaveImage();
               component.setVisibility(Component.INVISIBLE);
           }
   });

   protected void cropAndSaveImage() {
       mGestureCropImageView = uCropView.getCropImageView();
       mGestureCropImageView.cropAndSaveImage("image/jpeg", 90, null);
   }
  1. Запустите! Вы можете использовать жесты для изменения размера, перемещения и вырезания изображения. Вырезанное изображение будет сохранено в альбоме. Не беспокойтесь о проблемах, связанных с выходом рамки вырезания за границы изображения — компонент автоматически адаптируется к этим ситуациям.

  2. (необязательно) Используйте упакованные интерфейсы для выполнения операций масштабирования, перемещения, поворота и вырезания изображения. Вы можете поместить эти операции в кнопках или ползунках для достижения соответствующих эффектов.

// Масштабирование
uCropView.getCropImageView().postScale(factor, centerX, centerY);
// Перемещение
uCropView.getCropImageView().postTranslate(distanceX, distanceY);
// Поворот
uCropView.getCropImageView().postRotate(degrees, centerX, centerY);

Версионирование

  • v0.1.0-alpha

    Реализованы базовые возможности компонента

    Поддержка жестов для поворота изображения отсутствует Отсутствуют анимационные эффекты — v0.2.0-alpha

    Устранена проблема с несоответствием между «предварительным просмотром вырезки» и «фактическим вырезанным изображением» после вращения.

    Теперь поддерживаются жесты для вращения изображений.

  • v0.3.0-alpha

    Добавлена возможность чтения локальных файлов.

    В примерах добавлен код для чтения локальной галереи фотографий.

Знаменитые проблемы:

  1. Обработчик масштабирования неактивен после выполнения операции прокрутки
  2. Кадровый прямоугольник нельзя установить полупрозрачным цветом

Информация о правах и лицензиях

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

uCrop — это популярная на данный момент библиотека для обрезки изображений, которая отличается высокой степенью инкапсуляции, плавностью использования и широкими возможностями настройки. В настоящее время многие Android-приложения используют её в качестве модуля для обрезки изображений. Этот компонент представляет собой версию uCrop, адаптирова... Развернуть Свернуть
Java
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/isrc_ohos-u-crop_ohos.git
git@api.gitlife.ru:oschina-mirror/isrc_ohos-u-crop_ohos.git
oschina-mirror
isrc_ohos-u-crop_ohos
isrc_ohos-u-crop_ohos
develop