找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 725|回复: 0
打印 上一主题 下一主题

用PHP实现图象锐化代码

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 09:24:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            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);   
   }   
  }
            
            
        
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

用户反馈
客户端