Maison  >  Article  >  développement back-end  >  Explication détaillée des étapes pour implémenter le traitement inverse des couleurs des images en PHP

Explication détaillée des étapes pour implémenter le traitement inverse des couleurs des images en PHP

php中世界最好的语言
php中世界最好的语言original
2018-05-19 11:38:471843parcourir

Cette fois, je vais vous donner une explication détaillée des étapes pour inverser le traitement des couleurs des images en PHP. Quelles sont les précautions pour mettre en œuvre le traitement inverse des couleurs des images en PHP. Voici un cas pratique, jetons un coup d'oeil.

Aujourd'hui, j'ai besoin d'utiliser php pour inverser la couleur de l'image et la convertir en gris. Je ne savais pas si c'était possible avant, mais ensuite j'ai vu la fonction imagefilter(), qui est. c'est plus que suffisant pour le convertir en gris ;

imagefilter($im, IMG_FILTER_GRAYSCALE)

Bien sûr, certaines personnes définissent également les paramètres de gris dans le code de changement de couleur CSS

<style type="text/css">
img {
-webkit-filter: grayscale(1);/* Webkit */
filter:gray;/* IE6-9 */
filter: grayscale(1);/* W3C */
}
</style>

php :

<?php
/**
* 主要用于图片的处理函数
*/
//图片的反色功能
function color($url) {
  //获取图片的信息
    list($width, $height, $type, $attr)= getimagesize($url);
    $imagetype = strtolower(image_type_to_extension($type,false));
    $fun = 'imagecreatefrom'.($imagetype == 'jpg'?'jpeg':$imagetype);
    $img = $fun($url);
    for ($y=0; $y < $height; $y++) {
      for ($x=0; $x <$width; $x++) {
        //获取颜色的所以值
        $index = imagecolorat($img, $x, $y);
        //获取颜色的数组
        $color = imagecolorsforindex($img, $index);
        //颜色值的反转
        $red = 256 - $color['red'];
        $green = 256 - $color['green'];
        $blue = 256 - $color['blue'];
        $hex = imagecolorallocate($img, $red, $green, $blue);
        //给每一个像素分配颜色值
        imagesetpixel($img, $x, $y, $hex);
      }
    }
    //输出图片
    switch ($imagetype) {
      case 'gif':
      imagegif($img);
      break;
      case 'jpeg':
      imagejpeg($img);
      break;
      case 'png':
      imagepng($img);
      break;
      default:
      break;
    }
}

Code de test :

$imgurl='1.jpg';
echo color($imgurl);

Photo originale (prenez comme exemple cette photo parodie de ruine d'enfance couramment utilisée par l'éditeur) :

Après avoir exécuté (ici le test est Seigneur, quant à savoir si l'image subvertit les trois vues ou les cinq sens, l'éditeur n'en demandera pas trop~) :

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article, venez pour des informations plus intéressantes. Faites attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée des étapes pour analyser XML et générer des instructions SQL en PHP

PHP à implémenter capture de groupe d'expressions régulières Explication détaillée des étapes

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!

Déclaration:
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