PHP中实现图片的锐化(2)

分类: php基本   出处:iocblog整理  更新时间:2008-08-10   添加到收藏  

  <form name="formname" action="" method="post">

  请输入图片的本地路径或url:<br/>

  <input name="imagename" type="text" value="<?=$_post["imagename"]?>" size=32><br/>

  锐化度数(例:0.6、3.0):<br/>

  <input name="degree" type="text" value="<?=$_post["degree"]?>"><br/>

  <input type="submit" value="提交">

  </form> 

   改了一下,省了一个$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 "r:$r, g:$g, b:$b<br>";

   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);

   }

  }    [www.iocblog.net 来源]
 

上一页 [1] [2]


Tag: 锐化



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。