Comment faire pour convertir une image en base64 chaîne à l'aide de javascript
J'ai besoin de convertir mon image en base64 de la chaîne afin que je puisse envoyer mon image sur un serveur.
Est-il un fichier js pour ce... ? Sinon comment faire pour le convertir
- Où est-ce que votre image de?
- stackoverflow.com/questions/934012/get-image-data-in-javascript
- JS et jQ: stackoverflow.com/questions/17710147/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le HTML5
<canvas>
pour elle:Créer une toile, chargez votre image, et ensuite utiliser
toDataURL()
pour obtenir la représentation base64 (en fait, c'est undata:
URL, mais il contient l'image à l'encodage base64).toDataURL
donner le contrôle sur les rappels comme lesdone/fail/always
comme c'est le cas pour xhr?Il existe plusieurs approches que vous pouvez choisir à partir de:
1. Approche: FileReader
Charger l'image blob via XMLHttpRequest et l'utilisation de la FileReader API pour la convertir en une dataURL:
JS:
Cet exemple de code pourrait également être mis en œuvre en utilisant le WHATWG chercher de l'api:
JS:
Ces approches:
Prise En Charge Du Navigateur:
2. Approche: Toile
Charger l'image dans une Image-Objet, de la peinture à un non entachée de toile et de convertir le dos toile pour une dataURL.
JS:
dans le détail
Pris en charge les formats d'entrée:
image/png
,image/jpeg
,image/jpg
,image/gif
,image/bmp
,image/tiff
,image/x-icon
,image/svg+xml
,image/webp
,image/xxx
Pris en charge les formats de sortie:
image/png
,image/jpeg
,image/webp
(chrome)Prise En Charge Du Navigateur:
3. Approche: les Images du système de fichiers local
Si vous voulez convertir des images de la part des usagers du système de fichiers vous avez besoin de prendre une approche différente.
Utiliser le FileReader API:
JS:
HTML:
img.crossOrigin = 'Anonymous';
Image from origin **** has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.
file://C:/test.jpg
outputFormat
argument dans l'exemple invocation detoDataURL
.FileReader
de ne pas subir de perte de données. J'ai comparé sa sortie avec d'autres implémentations (par exemple, php.net/manual/en/function.base64-decode.php).Cet extrait peut convertir votre chaîne, l'image et le même fichier vidéo en Base64 de la chaîne de données.
HTML:
Voici ce que j'ai fait
Et voici comment vous l'utilisez
En fait, si votre image est
ensuite, vous pouvez convertir comme
<img id='Img1' src='someurl' crossorigin='anonymous'>
Vous pouvez utiliser FileAPI, mais il est assez bien pris en charge.
Si vous avez un fichier objet de cette simple fonction de travail:-
Utilisation Ex:-
Autant que je sache, l'image peut être converti en base64 de la chaîne, soit par FileReader() ou de le stocker dans l'élément canvas et ensuite utiliser toDataURL() pour obtenir l'image.J'ai eu le simmilar genre de problème vous pouvez renvoyer cette.
Convertir une image sur une toile, ce qui est déjà chargé
Essayer Ce code
De téléchargement de fichiers Chnage événement ccall cette fonction
Magasin base64data cachés déposé à utiliser.
J'ai trouvé que le plus sûr et le plus fiable façon de le faire est d'utiliser
FileReader()
Démo: Image en Base64
Bien, si vous utilisez dojo, il nous donne une façon directe d'encoder ou de décoder en base64.
Essayez ceci:
Pour coder un tableau d'octets à l'aide de dojox.l'encodage.base64:
Pour décoder une chaîne base64: