欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > PHP > PHP图像锐化处理代码

PHP图像锐化处理代码

2018-06-19 506 收藏 0 赞一个 0 真差劲 0 去评论

在PHP中也可实现图片的锐化操作,效果类似于Photoshop中的效果,这里也可以设置锐化度,有此方面需要的朋友可参考这个图片锐化的PHP函数代码:

PHP代码部分:

<?php
//图像类型:
//1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF
function GetImageType($filename) {return (($imginfo=@getimagesize($filename))!=null ? $imginfo[2] : null);}   
//开始图像锐化
//$im:图像句柄,$degree:锐化度
 function Sharp(&$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));
 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);
 }
}
$ImageFunctions = array("imagecreatefromwbmp", "imagecreatefromgif", "imagecreatefromjpeg", "imagecreatefrompng");  
if (!empty($_POST["ImageName"]))
{ 
 set_time_limit(10*60);
 if (($ImageType=GetImageType($_POST["ImageName"]))==false)
 die("指定文件不存在或不是有效的图片类型!");
 if ($ImageType==6) $ImageType = 0;
 if ($ImageType>3) die("不支持的图片类型!");
 $im1 = $ImageFunctions[$ImageType]($_POST["ImageName"]);
 $im2 = $ImageFunctions[$ImageType]($_POST["ImageName"]);
 Sharp($im1, $im2, $_POST["Degree"]);
 header("Content-type: image/png");
 imagepng($im2);
 imagedestroy($im1);
 imagedestroy($im2);
} 
?>

HTML代码部分:

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

测试时候可以将这两段代码保存在一个文件里,保存格式为.php类型,测试运行吧,会有一个表单要求选择图片路径,选择后提交要看到效果。

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论