Sobre el proyecto
# react-native-image-crop-picker
Un módulo de React Native para seleccionar imágenes y videos desde la galería o la cámara del dispositivo, con soporte para recorte, compresión, selección múltiple y diversas opciones de personalización. Funciona tanto en iOS como en Android.
## Características
- **Galería y cámara**: Abre el selector del sistema o la cámara directamente.
- **Recorte**: Habilita el recorte con dimensiones personalizables, superposición circular, recorte de estilo libre y gestos de rotación (Android).
- **Selección múltiple**: Selecciona varias imágenes o videos a la vez.
- **Compresión**: Comprime imágenes según ancho/alto/calidad máximos, y los videos mediante un preset (iOS).
- **Tipo de medio**: Filtra por foto, video o cualquiera.
- **Base64 y EXIF**: Opcionalmente incluye datos base64 y metadatos EXIF en la respuesta.
- **Limpieza**: Elimina los archivos temporales creados durante la selección.
- **Personalización**: Amplias opciones para los colores de la interfaz, el texto y el comportamiento (p. ej., marco de recorte, guías, barra de herramientas).
## Instalación
```bash
npm i react-native-image-crop-picker --save
```
Para iOS, ejecuta `cd ios && pod install`. Añade las descripciones de uso a `Info.plist` (p. ej., `NSPhotoLibraryUsageDescription` para el acceso a la biblioteca de fotos). Para Android, añade los permisos necesarios a `AndroidManifest.xml` (p. ej., cámara, almacenamiento).
## Uso
```javascript
import ImagePicker from 'react-native-image-crop-picker';
// Imagen única con recorte
ImagePicker.openPicker({ width: 300, height: 400, cropping: true })
.then(image => console.log(image))
.catch(error => console.log(error));
// Imágenes múltiples
ImagePicker.openPicker({ multiple: true })
.then(images => console.log(images));
// Solo video
ImagePicker.openPicker({ mediaType: 'video' })
.then(video => console.log(video));
// Cámara
ImagePicker.openCamera({ width: 300, height: 400, cropping: true })
.then(image => console.log(image));
// Recortar un archivo existente
ImagePicker.openCropper({ path: 'file-path.jpg', width: 300, height: 400 })
.then(image => console.log(image));
```
## Opciones
Las opciones clave incluyen `cropping`, `width`, `height`, `multiple`, `mediaType`, `includeBase64`, `includeExif`, `compressImageMaxWidth`, `compressImageMaxHeight`, `compressImageQuality`, `freeStyleCropEnabled`, `cropperCircleOverlay`, y muchas más. Consulta el README para la lista completa.
## Respuesta
Cada recurso seleccionado incluye propiedades como `path`, `width`, `height`, `mime`, `size`, `duration` (para videos), `data` (si es base64), `exif` y `cropRect`. iOS también proporciona `localIdentifier`, `sourceURL`, `creationDate` y `modificationDate`.
## Notas
- Para la nueva arquitectura de React Native, usa la versión >= 0.50.0.
- En Android, evita establecer `cropping` en `true` al seleccionar videos, ya que puede ocultar los videos en la galería.
- El módulo crea archivos temporales; usa `clean()` o `cleanSingle(path)` para eliminarlos.
## Licencia
MIT (implícita según el repositorio, pero no declarada explícitamente en el README proporcionado).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.