Si vous développez un petit bout de code localement et que vous utilisez Chrome, il y a un problème. Si votre page se charge en utilisant une URL de la forme "file://xxxx", l'utilisation de la fonction getImageData() sur le canevas échouera et provoquera une erreur de sécurité d'origine croisée, même si votre image est récupérée dans le même répertoire sur votre machine locale que la page HTML qui rend le canevas. Donc, si votre page HTML est récupérée à partir de, disons :
fichier://D:/wwwroot/mydir/mytestpage.html
et votre fichier Javascript et les images sont récupérés à partir de, disons :
fichier://D:/wwwroot/mydir/mycode.js
fichier://D:/wwwroot/mydir/myImage.png
alors, malgré le fait que ces entités secondaires sont récupérées à partir de la même origine, l'erreur de sécurité est toujours déclenchée.
Pour une raison quelconque, au lieu de définir l'origine correctement, Chrome définit l'attribut d'origine des entités requises sur "null", ce qui rend impossible le test du code impliquant getImageData() en ouvrant simplement la page HTML dans votre navigateur et en déboguant localement.
De même, le fait de définir la propriété crossOrigin de l'image sur "anonymous" ne fonctionne pas, pour la même raison.
J'essaie toujours de trouver une solution de contournement, mais une fois de plus, il semble que le débogage local soit rendu aussi pénible que possible par les implémenteurs de navigateurs.
Je viens d'essayer d'exécuter mon code dans Firefox, et Firefox s'en sort bien, en reconnaissant que mon image a la même origine que les scripts HTML et JS. J'aimerais donc avoir des conseils sur la façon de contourner le problème dans Chrome, car pour le moment, bien que Firefox fonctionne, son débogueur est le suivant douloureusement lent, au point d'être à deux doigts d'une attaque par déni de service.