VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • PHP实现对图片的反色处理功能【测试可用】

本文实例讲述了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);

 

原文链接:http://www.phpfensi.com/php/20210902/17847.html


相关教程