


Exemple de code pour implémenter des niveaux de gris d'image à l'aide du composant HTML5 Canvas
HTML5 est sorti depuis longtemps, et je ne l'ai jamais regardé attentivement. Je suis juste venu ici pendant le Nouvel An pour y jeter un œil
J'ai découvert. la fonction du composant Canvas en HTML5 Elle est si puissante. Je ne blâme pas beaucoup de gens formidables d'avoir prédit que Flash est mort. Ce qui m'importe, ce n'est pas que Canvas puisse facilement implémenter des cadres photo simples. sur les pages Web et les niveaux de gris des images.
Voyons comment HTML5 Canvas le fait !
1. Créez une nouvelle page html et ajoutez
2. Ajoutez le code JavaScript le plus simple :
<canvas id="myCanvas" >Gray Filter</canvas>
Le code pour obtenir le contexte de l'objet de dessin à partir de l'objet Canvas est le suivant :
window.onload = function() { var canvas = document.getElementById("myCanvas"); // do something here!! }
Le code html pour ajouter une image au html la page est la suivante :
var context = canvas.getContext("2d");
depuis html Le code javascript pour obtenir l'objet image dans l'objet img est le suivant :
<img id="imageSource" src="hanjiaren.jpg" alt="Canvas Source" />
Le code pour dessiner l'image obtenue dans l'objet Canvas est le suivant :
var image = document.getElementById("imageSource");
context.drawImage(image, 0, 0);
Le code pour obtenir les données de pixels de l'image à partir de l'objet Canvas est le suivant :
Le code pour lire les valeurs des pixels et implémenter les niveaux de gris le calcul est le suivant :
var canvasData = context.getImageData(0, 0, canvas.width, canvas.height);
其中计算灰度公式为 gray color = 0.299 × red color + 0.578 × green color + 0.114 * blue color 读取出来的像素值顺序为RGBA 分别代表red color, green color, blue color, alpha channel 处理完成的数据要重新载入到Canvas中。代码如下: 程序最终的效果如下: 代码中的文件可以替换任意你想要看到的图片文件,HTML5, 原来如此神奇。 程序在google浏览器中测试通过千万不要在本地尝试运行上面的代码,google Le contrôle de sécurité du navigateur empêchera automatiquement la lecture et l'écriture des fichiers n'appartenant pas au domaine à partir du navigateur. Il est préférable de les publier sur Tomcat ou ou n'importe quel site Web. serveur de conteneur Vous pourrez vérifier l'effet à partir du navigateur Google ultérieurement.
Ce qui précède est le contenu de l'exemple de code du composant HTML5 Canvas pour obtenir des niveaux de gris d'image. Pour plus de contenu connexe, veuillez faire attention au PHP. Site chinois (www.php .cn) ! for ( var x = 0; x < canvasData.width; x++) {
for ( var y = 0; y < canvasData.height; y++) {
// Index of the pixel in the array
var idx = (x + y * canvasData.width) * 4;
var r = canvasData.data[idx + 0];
var g = canvasData.data[idx + 1];
var b = canvasData.data[idx + 2];
// calculate gray scale value
var gray = .299 * r + .587 * g + .114 * b;
// assign gray scale value
canvasData.data[idx + 0] = gray; // Red channel
canvasData.data[idx + 1] = gray; // Green channel
canvasData.data[idx + 2] = gray; // Blue channel
canvasData.data[idx + 3] = 255; // Alpha channel
// add black border
if(x < 8 || y < 8 || x > (canvasData.width - 8) || y > (canvasData.height - 8))
{
canvasData.data[idx + 0] = 0;
canvasData.data[idx + 1] = 0;
canvasData.data[idx + 2] = 0;
}
}
}
context.putImageData(canvasData, 0, 0);
完全源代码如下:
<script>
window.onload = function() {
var canvas = document.getElementById("myCanvas");
var image = document.getElementById("imageSource");
// re-size the canvas deminsion
canvas.width = image.width;
canvas.height = image.height;
// get 2D render object
var context = canvas.getContext("2d");
context.drawImage(image, 0, 0);
var canvasData = context.getImageData(0, 0, canvas.width, canvas.height);
alert(canvasData.width.toString());
alert(canvasData.height.toString());
// gray filter
for ( var x = 0; x < canvasData.width; x++) {
for ( var y = 0; y < canvasData.height; y++) {
// Index of the pixel in the array
var idx = (x + y * canvasData.width) * 4;
var r = canvasData.data[idx + 0];
var g = canvasData.data[idx + 1];
var b = canvasData.data[idx + 2];
// calculate gray scale value
var gray = .299 * r + .587 * g + .114 * b;
// assign gray scale value
canvasData.data[idx + 0] = gray; // Red channel
canvasData.data[idx + 1] = gray; // Green channel
canvasData.data[idx + 2] = gray; // Blue channel
canvasData.data[idx + 3] = 255; // Alpha channel
// add black border
if(x < 8 || y < 8 || x > (canvasData.width - 8) || y > (canvasData.height - 8))
{
canvasData.data[idx + 0] = 0;
canvasData.data[idx + 1] = 0;
canvasData.data[idx + 2] = 0;
}
}
}
context.putImageData(canvasData, 0, 0); // at coords 0,0
};
</script>
Hello World!
<img id="imageSource" src="hanjiaren.jpg" alt="Canvas Source" />
<canvas id="myCanvas" >Gray Filter</canvas>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Guide du bouton HTML onclick. Nous discutons ici de leur introduction, de leur fonctionnement, des exemples et de l'événement onclick dans divers événements respectivement.
