Maison >interface Web >js tutoriel >Comment résoudre les problèmes de CanvasContext2D drawImage() avec Onload et CORS ?
Lorsque vous tentez de dessiner une image sur un canevas avant d'obtenir son dataURL, les informations renvoyées peuvent apparaître déficientes, remplies avec de nombreux caractères "A". Ce problème est dû à la nécessité d'attendre la fin du chargement de l'image avant de pouvoir être peinte sur la toile. Pour remédier à ce problème, utilisez le gestionnaire d'événements de chargement pour l'élément image.
Pour résoudre ce problème, mettez en œuvre les étapes suivantes :
Un obstacle potentiel est lié au CORS (Cross-Origin Resource Sharing). Pour que context.toDataURL() et context.getImageData fonctionnent de manière transparente, la ressource image doit être obtenue d'une manière compatible avec toutes les origines. Sinon, le canevas sera marqué comme « entaché », empêchant l'accès aux données de pixels. Pour contourner ce problème, respectez les directives suivantes :
Il est crucial de noter que les en-têtes CORS proviennent du serveur. L'attribut d'origine croisée signifie uniquement votre intention d'exploiter CORS pour la récupération de données. Si le serveur n'est pas configuré correctement, aucune solution de contournement n'existe.
Dans les rares cas impliquant des images provenant de sources mixtes (propre serveur et serveurs compatibles CORS), envisagez d'utiliser le gestionnaire d'événements onerror. Ce gestionnaire s'activera lorsque l'attribut cross-origin est défini sur « anonyme » sur un serveur non-CORS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!