当前位置:首页 > PHP教程 > php图像处理 > 列表

PHP实现对图片的反色处理功能【测试可用】

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-02 10:52:31 浏览: 评论:0 

本文实例讲述了PHP实现对图片的反色处理功能,分享给大家供大家参考,具体如下:

今天有个需求用php对图片进行反色,和转灰,之前不知道可不可行,后来看到了imagefilter()函数,用来转灰绰绰有余,好强大;

imagefilter($im, IMG_FILTER_GRAYSCALE)

当然也有人在css里面设置变灰

  1. <style type="text/css"> 
  2. img { 
  3. -webkit-filter: grayscale(1);/* Webkit */ 
  4. filter:gray;/* IE6-9 */ 
  5. filter: grayscale(1);/* W3C */ 
  6. </style> 

php转色代码:

  1. <?php 
  2. /** 
  3. * 主要用于图片的处理函数 
  4. */ 
  5. //图片的反色功能 
  6. function color($url) { 
  7.   //获取图片的信息 
  8.     list($width$height$type$attr)= getimagesize($url); 
  9.     $imagetype = strtolower(image_type_to_extension($type,false)); 
  10.     $fun = 'imagecreatefrom'.($imagetype == 'jpg'?'jpeg':$imagetype); 
  11.     $img = $fun($url); 
  12.     for ($y=0; $y < $height$y++) { 
  13.       for ($x=0; $x <$width$x++) { 
  14.         //获取颜色的所以值 
  15.         $index = imagecolorat($img$x$y); 
  16.         //获取颜色的数组 
  17.         $color = imagecolorsforindex($img$index); 
  18.         //颜色值的反转 
  19.         $red = 256 - $color['red']; 
  20.         $green = 256 - $color['green']; 
  21.         $blue = 256 - $color['blue']; 
  22.         $hex = imagecolorallocate($img$red$green$blue); 
  23.         //给每一个像素分配颜色值 
  24.         imagesetpixel($img$x$y$hex); 
  25.       } 
  26.     } 
  27.     //输出图片 
  28.     switch ($imagetype) { 
  29.       case 'gif'
  30.       imagegif($img); 
  31.       break
  32.       case 'jpeg'
  33.       imagejpeg($img); 
  34.       break
  35.       case 'png'
  36.       imagepng($img); 
  37.       break
  38.       default
  39.       break
  40.     } 

测试代码:

$imgurl='1.jpg';

echo color($imgurl);

Tags: PHP反色处理

分享到: