Documentos de Académico
Documentos de Profesional
Documentos de Cultura
expo-image-picker proporciona acceso a la interfaz de usuario del sistema para seleccionar imágenes y videos
de la biblioteca del teléfono o tomar una foto con la cámara.
Compatibilidad de plataforma
Instalación
expo install expo-image-picker
Ejemplo de uso
import * as React from 'react';
import { Button, Image, View } from 'react-native';
import * as ImagePicker from 'expo-image-picker';
import Constants from 'expo-constants';
import * as Permissions from 'expo-permissions';
render() {
let { image } = this.state;
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Button title="Pick an image from camera roll" onPress={this._pickImage} />
{image && <Image source={{ uri: image }} style={{ width: 200, height:
200 }} />}
</View>
);
}
componentDidMount() {
this.getPermissionAsync();
}
console.log(result);
} catch (E) {
console.log(E);
}
};
}
Cuando ejecute este ejemplo y elija una imagen, verá que la imagen que eligió se muestra en su aplicación, y
algo similar a lo siguiente se registra en su consola:
{
"cancelled":false,
"height":1611,
"width":2148,
"uri":"file:///data/user/0/host.exp.exponent/cache/cropped1814158652.jpg"
}
API
import * as ImagePicker from 'expo-image-picker';
ImagePicker.requestCameraPermissionsAsync()
Pide al usuario que otorgue permisos para acceder a la cámara. Alias para
Permissions.askAsync(Permissions.CAMERA).
Returns
ImagePicker.requestCameraRollPermissionsAsync()
Pide al usuario que otorgue permisos para acceder a la foto del usuario. Alias para
Permissions.askAsync(Permissions.CAMERA_ROLL).
Returns
ImagePicker.getCameraPermissionsAsync()
Comprueba los permisos del usuario para acceder a la cámara. Alias para
Permissions.getAsync(Permissions.CAMERA).
Returns
ImagePicker.getCameraRollPermissionsAsync()
Comprueba los permisos del usuario para acceder a las fotos. Alias para
Permissions.getAsync(Permissions.CAMERA_ROLL).
Returns
ImagePicker.launchImageLibraryAsync(options)
Muestra la IU del sistema para elegir una imagen o un video de la biblioteca del teléfono. Requiere
Permissions.CAMERA_ROLL solo en iOS 10.
Argumentos
options (object) --
aspect (array) -- Una matriz con dos entradas [x, y] que especifica la relación de aspecto que se debe
mantener si el usuario puede editar la imagen (al pasar allowEditing: true). Esto solo es aplicable en Android,
ya que en iOS el rectángulo de recorte siempre es un cuadrado.
quality (number) -- Especifique la calidad de la compresión, de 0 a 1. 0 significa comprimir para un
tamaño pequeño, 1 significa comprimir para obtener la máxima calidad.
Nota: Si la imagen seleccionada se ha comprimido antes, el tamaño del archivo de salida puede ser mayor que el
tamaño de la imagen original.
base64 (boolean) -- Si también se incluyen los datos de la imagen en formato Base64.
exif (boolean) -- Si incluir también los datos EXIF para la imagen.
Compatibilidad con GIF animados Si la imagen seleccionada es un GIF animado, la imagen resultante también
será un GIF animado si y solo si la calidad se configura como indefinida y permite que la Edición se configure
como falsa. De lo contrario, la compresión y / o el recortador elegirán el primer fotograma del GIF y lo
devolverán como resultado (en Android, el resultado será un PNG, en iOS - GIF).
Devoluciones
De lo contrario, este método devuelve información sobre el elemento multimedia seleccionado. Cuando el
elemento elegido es una imagen, este método devuelve { cancelled: false, type: 'image', uri, width, height,
exif, base64 }; cuando el elemento es un video, este método devuelve { cancelled: false, type: 'video', uri,
width, height, duration }.
La propiedad uri es un URI para la imagen local o el archivo de video (utilizable como la fuente de un
elemento Image, en el caso de una imagen) y el ancho y la altura especifican las dimensiones de los medios.
El campo exif se incluye si la opción exif es verdadera y es un objeto que contiene los datos EXIF de la
imagen. Los nombres de las propiedades de este objeto son etiquetas EXIF y los valores son los respectivos
valores EXIF para esas etiquetas.
La propiedad base64 se incluye si la opción base64 es verdadera y es una cadena Base64-encoded de los
datos JPEG de la imagen seleccionada. Si antepones esto con 'data:image/jpeg;base64,' para crear un dato URI,
puede usarlo como fuente de un elemento de Image; por ejemplo: <Image source={'data:image/jpeg;base64,'
+ launchCameraResult.base64} style={{width: 200, height: 200}} />.
La propiedad de duration es la duración del video en milisegundos.
ImagePicker.launchCameraAsync(options)
Muestra la interfaz de usuario del sistema para tomar una foto con la cámara. Requiere Permissions.CAMERA.
En los permisos de Android e iOS 10, también se requiere CAMERA_ROLL.
Argumentos
options (object) --
- Un mapa de opciones:
allowsEditing (boolean) -- Si se debe mostrar una IU para editar la imagen después de que se
selecciona. En Android, el usuario puede recortar y rotar la imagen y en iOS simplemente recortarla.
Por defecto es falso.
Devoluciones
De lo contrario, este método devuelve información sobre el elemento multimedia seleccionado. Cuando el
elemento elegido es una imagen, este método devuelve { cancelled: false, type: 'image',
uri, width, height, exif, base64 }; cuando el elemento es un video, este método devuelve
{ cancelled: false, type: 'video', uri, width, height, duration }.
La propiedad uri es un URI para la imagen local o el archivo de video (utilizable como la fuente de un
elemento de imagen, en el caso de una imagen) y el ancho y la altura especifican las dimensiones de los medios.
El campo exif se incluye si la opción exif es verdadera y es un objeto que contiene los datos EXIF de la
imagen. Los nombres de las propiedades de este objeto son etiquetas EXIF y los valores son los respectivos
valores EXIF para esas etiquetas.
La propiedad base64 se incluye si la opción base64 es verdadera y es una cadena Base64-encoded de los
datos JPEG de la imagen seleccionada. Si antepones esto con 'data:image/jpeg;base64,' to cree un URI de
datos, puede usarlo como fuente de un elemento de imagen; por ejemplo: <Image
source={'data:image/jpeg;base64,' + launchCameraResult.base64} style={{width: 200, height: 200}} />.
La propiedad de duration es la duración del video en milisegundos..
Enums
ImagePicker.MediaTypeOptions
ImagePicker.VideoExportPreset
Video Audio
Preset Value Resolution compression compression
algorithm algorithm
VideoExportPreset.Passthrough 0 Unchanged None None
VideoExportPreset.LowQuality Depends on
1 H.264 AAC
the device
VideoExportPreset.MediumQuality Depends on
2 H.264 AAC
the device
VideoExportPreset.HighestQuality 3 Depends on
H.264 AAC
the device
VideoExportPreset.H264_640x480 4 640 x 480 H.264 AAC
VideoExportPreset.H264_960x540 5 960 x 540 H.264 AAC
VideoExportPreset.H264_1280x720 6 1280 x 720 H.264 AAC
VideoExportPreset.H264_1920x1080 7 1920 x 1080 H.264 AAC
VideoExportPreset.H264_3840x2160 8 3840 x 2160 H.264 AAC
VideoExportPreset.HEVC_1920x1080 9 1920 x 1080 HEVC AAC
VideoExportPreset.HEVC_3840x2160 10 3840 x 2160 HEVC AAC