Об этом проекте
# react-native-image-crop-picker
Модуль React Native для выбора изображений и видео из галереи устройства или камеры, с поддержкой обрезки, сжатия, множественного выбора и различными вариантами настройки. Работает как на iOS, так и на Android.
## Возможности
- **Галерея и камера**: Откройте системный выборщик или камеру напрямую.
- **Обрезка**: Включите обрезку с настраиваемыми размерами, круглым оверлеем, свободной формой кадрирования и жестами вращения (Android).
- **Множественный выбор**: Выбирайте несколько изображений или видео одновременно.
- **Сжатие**: Сжимайте изображения по максимальной ширине/высоте/качеству и видео по пресету (iOS).
- **Тип медиа**: Фильтруйте по фото, видео или любому типу.
- **Base64 и EXIF**: По желанию включайте данные base64 и метаданные EXIF в ответ.
- **Очистка**: Удаляйте временные файлы, созданные во время выбора.
- **Настройка**: Широкие возможности для цветов интерфейса, текста и поведения (например, рамка кадрирования, направляющие линии, панель инструментов).
## Установка
```bash
npm i react-native-image-crop-picker --save
```
Для iOS выполните `cd ios && pod install`. Добавьте описания использования в `Info.plist` (например, `NSPhotoLibraryUsageDescription` для доступа к фотобиблиотеке). Для Android добавьте необходимые разрешения в `AndroidManifest.xml` (например, камера, хранилище).
## Использование
```javascript
import ImagePicker from 'react-native-image-crop-picker';
// Одно изображение с обрезкой
ImagePicker.openPicker({ width: 300, height: 400, cropping: true })
.then(image => console.log(image))
.catch(error => console.log(error));
// Несколько изображений
ImagePicker.openPicker({ multiple: true })
.then(images => console.log(images));
// Только видео
ImagePicker.openPicker({ mediaType: 'video' })
.then(video => console.log(video));
// Камера
ImagePicker.openCamera({ width: 300, height: 400, cropping: true })
.then(image => console.log(image));
// Обрезать существующий файл
ImagePicker.openCropper({ path: 'file-path.jpg', width: 300, height: 400 })
.then(image => console.log(image));
```
## Параметры
Ключевые параметры включают `cropping`, `width`, `height`, `multiple`, `mediaType`, `includeBase64`, `includeExif`, `compressImageMaxWidth`, `compressImageMaxHeight`, `compressImageQuality`, `freeStyleCropEnabled`, `cropperCircleOverlay` и многие другие. Полный список см. в README.
## Ответ
Каждый выбранный ресурс включает такие свойства, как `path`, `width`, `height`, `mime`, `size`, `duration` (для видео), `data` (если base64), `exif` и `cropRect`. iOS также предоставляет `localIdentifier`, `sourceURL`, `creationDate` и `modificationDate`.
## Примечания
- Для новой архитектуры React Native используйте версию >= 0.50.0.
- На Android избегайте установки `cropping` в значение `true` при выборе видео, так как это может скрыть видео в галерее.
- Модуль создает временные файлы; используйте `clean()` или `cleanSingle(path)` для их удаления.
## Лицензия
MIT (подразумевается репозиторием, но явно не указана в предоставленном README).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.