时时商务社区

标题: 用PHP实现图象锐化代码 [打印本页]

作者: wx_pylelnL4    时间: 2018-2-14 09:24

            3) die("不支持的图片类型!");   
   $im1 = $ImageFunctions[$ImageType]($_POST["ImageName"]);   
   $im2 = $ImageFunctions[$ImageType]($_POST["ImageName"]);   
   //print_r(imagecolorsforindex($im, imagecolorat($im, 10, 10)));   
   Sharp($im1, $im2, $_POST["Degree"]);   
   header("Content-type: image/png");   
   imagepng($im2);   
   imagedestroy($im1);   
   imagedestroy($im2);   
  }    
  ?>   
     
  请输入图片的本地路径或URL:
   
  " size=32>
   
  锐化度数(例:0.6、3.0):
   
  ">
   
     
      
   改了一下,省了一个$im:     
   function Sharp2(&$im, $degree)   
  {   
   $cnt = 0;   
   for ($x=imagesx($im)-1; $x>0; $x--)   
   for ($y=imagesy($im)-1; $y>0; $y--)   
   {   
   $clr1 = imagecolorsforindex($im, imagecolorat($im, $x-1, $y-1));   
   $clr2 = imagecolorsforindex($im, imagecolorat($im, $x, $y));   
   $r = intval($clr2["red"]+$degree*($clr2["red"]-$clr1["red"]));   
   $g = intval($clr2["green"]+$degree*($clr2["green"]-$clr1["green"]));   
   $b = intval($clr2["blue"]+$degree*($clr2["blue"]-$clr1["blue"]));   
   $r = min(255, max($r, 0));   
   $g = min(255, max($g, 0));   
   $b = min(255, max($b, 0));   
   //echo "rr, gg, bb
";   
   if (($new_clr=imagecolorexact($im, $r, $g, $b))==-1)   
   $new_clr = Imagecolorallocate($im, $r, $g, $b);   
   $cnt++;   
   if ($new_clr==-1) die("color allocate faile at $x, $y ($cnt).");   
   imagesetpixel($im, $x, $y, $new_clr);   
   }   
  }
            
            
        




欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2