Lors de la conception récente de la fonction de téléchargement d'avatar sur le terminal mobile, elle a été initialement téléchargée directement via formData avec . Cependant, l'utilisation réelle est la suivante : pour les images trop grandes (photos prises). par les téléphones mobiles à pixels élevés), etc.) Un temps de téléchargement trop long entraînera l'échec du téléchargement, et télécharger la taille originale de l'image à chaque fois (compression de traitement en arrière-plan) affectera grandement l'expérience utilisateur, j'ai donc étudié la méthode de compression l'image à travers Canvas et en la téléchargeant. Voici quelques idées et réflexions :
1. Obtenez l'image locale et dessinez l'image dans le canevas. La difficulté ici est : en raison du mécanisme de protection du navigateur, le chemin de l'image du fichier local ne peut pas être obtenu directement, donc l'image locale doit être compilée au format base64 puis téléchargée , le code est le suivant :
Désolé, votre navigateur ne prend pas en charge FileReader
" ;
2. La méthode drawImage() dans canvas a la fonction de recadrage de l'image, mais si l'étirement et le recadrage de l'image sont écrits en même temps, la méthode de recadrage sera exécutée en premier ;
3. Lorsque vous utilisez AJAX pour télécharger l'encodage d'image, le signe plus dans l'encodage sera converti en espace, provoquant l'échec de la compilation en arrière-plan;
4. La méthode de sélection et de téléchargement des zones d'image est encore en phase d'essai, et j'ajouterai mon expérience plus tard.Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.
Texte original :
http://www.cnblogs.com/liaojh/p/5209433.html