Home  >  Article  >  Backend Development  >  How to implement inverse color processing of images in PHP

How to implement inverse color processing of images in PHP

小云云
小云云Original
2018-02-03 08:58:161391browse

Today I have a requirement to use PHP to invert the color of the image and convert it to gray. I didn’t know if it was feasible before, but then I saw the imagefilter() function, which is more than enough to convert it to gray. It is so powerful; the main article of this article Let me introduce to you the function of inverting the color of images in PHP, which involves PHP's related operation skills of image reading, numerical calculations, etc. Friends who need it can refer to it. I hope it can help you.


imagefilter($im, IMG_FILTER_GRAYSCALE)

Of course, some people also set gray color in css


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

php color change code:


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

Test code:


$imgurl=&#39;1.jpg&#39;;
echo color($imgurl);

Original picture (commonly used by the editor) Take this childhood-ruining spoof picture as an example):

After running (this is mainly for testing. As for whether the picture subverts the three views or the five senses, the editor will not worry about it. ~):

Related recommendations:

PHP code to convert a color to its inverse color

php method to convert color to its inverse color, php to convert color to its

Python image processing inverse color implementation method

The above is the detailed content of How to implement inverse color processing of images in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn