Maison > interface Web > js tutoriel > le corps du texte

L'usage magique de la toile

高洛峰
Libérer: 2017-02-08 14:42:45
original
968 Les gens l'ont consulté

Canvas a une méthode magique appelée getImageData. Il peut obtenir la valeur de couleur de chaque pixel de l'image dans le canevas et elle peut être modifiée.

Si vous disposez de différents algorithmes de filtrage. Ensuite, vous pouvez utiliser Canvas pour réaliser la conversion de filtre des images et vous pouvez créer une fonction similaire à Meitu Xiuxiu.

Instructions :

1 : Importez d'abord l'image dans le canevas.

2 : var canvasData = context.getImageData(0, 0, canvas.width, canvas.height); //Utilisez ceci pour obtenir les informations de chaque pixel de l'image et obtenir un tableau. Notez que les informations obtenues ne sont pas un tableau bidimensionnel comme [[r,g,b,a],[r,g,b,a]] mais [r,g,b,a,r,g,b, a] Un tel tableau unique disposé dans l'ordre rgba.

3 : Cette étape consiste à commencer à changer le rgba de chaque pixel. Voici une brève introduction à l'algorithme et aux étapes de mise en œuvre de l'effet niveaux de gris.

function gray(canvasData)
{
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];
  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;
  }
  }
}
return canvasData;
}
Copier après la connexion

4 : context.putImageData(canvasData, 0, 0); //Après avoir traité la valeur de couleur du pixel, pensez à redessiner le canevas avec cette phrase

Ces codes sont Le code qui convertit les images en effets noir et blanc. L'effet spécifique pouvant être obtenu dépend du nombre d'algorithmes de filtrage dont vous disposez.

Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article pourra apporter de l'aide à l'étude ou au travail de chacun. J'espère également soutenir le site Web PHP chinois !

Pour plus d'articles liés à l'utilisation magique de Canvas, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal