12 votes

Comment obtenir une image jpg à partir du format heic en react native ?

Je sélectionne des photos dans la galerie et les télécharge sur le serveur mais depuis quelques jours, j'ai remarqué que certaines photos ont une extension heic et que les navigateurs ne peuvent pas rendre ces images.

1. Existe-t-il un moyen d'extraire les photos d'un fichier téléchargé ?
2. Comment, en react native, puis-je obtenir un jpeg à partir de ce format ?

12voto

Vous pouvez le convertir côté serveur, avec l'aide de cette librairie géniale. Tifig .

https://github.com/monostream/tifig

Vous pouvez également utiliser des API comme https://cloudconvert.com/formats/image/heic à convertir soit du côté serveur, soit du côté mobile (côté client).

2voto

MrBrownser Points 114

Je suppose que vous utilisez react-native-image-picker qui est la bibliothèque communautaire et la plus utilisée.

En fait, il n'est pas nécessaire d'installer un autre module, il suffit de saisir toujours le module uri de la réponse et mettez à jour le nom du fichier au cas où vous auriez une heic image. Exemple de code :

const options = {
    title: 'Select Avatar',
    storageOptions: {
    skipBackup: true,
    path: 'images'
    },
    noData: true,
    quality: 1,
    mediaType: 'photo'
};

ImagePicker.showImagePicker(options, imgResponse => {

    this.setState({ imageLoading: true, avatarMediaId: null });

    if ((imgResponse.didCancel) || (imgResponse.error)) {
        this.setState({ imageLoading: false });
    } else {
        let source = {};
        let fileName = imgResponse.fileName;
        if (Platform.OS === 'ios' && (fileName.endsWith('.heic') || fileName.endsWith('.HEIC'))) {
            fileName = `${fileName.split(".")[0]}.JPG`;
        }
        source = { uri: imgResponse.uri, fileName };
        this.uploadImage(source);
    }
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X