最新文章專題視頻專題關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

php如何實現(xiàn)圖片模糊

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-02 18:27:58
文檔

php如何實現(xiàn)圖片模糊

php如何實現(xiàn)圖片模糊:php實現(xiàn)圖片模糊的方法:首先創(chuàng)建一個PHP示例文件;然后定義一個image_blur類;接著創(chuàng)建gaussian_blur和blur方法;最后通過$image_blur->gaussian_blur();方法實現(xiàn)圖片模糊。推薦:《PHP視頻教程》本文實例講述了PHP實現(xiàn)生成模糊圖
推薦度:
導(dǎo)讀php如何實現(xiàn)圖片模糊:php實現(xiàn)圖片模糊的方法:首先創(chuàng)建一個PHP示例文件;然后定義一個image_blur類;接著創(chuàng)建gaussian_blur和blur方法;最后通過$image_blur->gaussian_blur();方法實現(xiàn)圖片模糊。推薦:《PHP視頻教程》本文實例講述了PHP實現(xiàn)生成模糊圖

php實現(xiàn)圖片模糊的方法:首先創(chuàng)建一個PHP示例文件;然后定義一個“image_blur”類;接著創(chuàng)建“gaussian_blur”和“blur”方法;最后通過“$image_blur->gaussian_blur();”方法實現(xiàn)圖片模糊。

推薦:《PHP視頻教程》

本文實例講述了PHP實現(xiàn)生成模糊圖片的方法。分享給大家供大家參考,具體如下:

<?php
class image_blur{
/**
 * 圖片高斯模糊(適用于png/jpg/gif格式)
 * @param $srcImg 原圖片
 * @param $savepath 保存路徑
 * @param $savename 保存名字
 * @param $positon 模糊程度
 *
 *基于Martijn Frazer代碼的擴充, 感謝 Martijn Frazer
 */
 public function gaussian_blur($srcImg,$savepath=null,$savename=null,$blurFactor=3){
 $gdImageResource=$this->image_create_from_ext($srcImg);
 $srcImgObj=$this->blur($gdImageResource,$blurFactor);
 $temp = pathinfo($srcImg);
 $name = $temp['basename'];
 $path = $temp['dirname'];
 $exte = $temp['extension'];
 $savename = $savename ? $savename : $name;
 $savepath = $savepath ? $savepath : $path;
 $savefile = $savepath .'/'. $savename;
 $srcinfo = @getimagesize($srcImg);
 switch ($srcinfo[2]) {
 case 1: imagegif($srcImgObj, $savefile); break;
 case 2: imagejpeg($srcImgObj, $savefile); break;
 case 3: imagepng($srcImgObj, $savefile); break;
 default: return '保存失敗'; //保存失敗
 }
 return $savefile;
 imagedestroy($srcImgObj);
 }
 /**
 * Strong Blur
 *
 * @param $gdImageResource 圖片資源
 * @param $blurFactor 可選擇的模糊程度
 * 可選擇的模糊程度 0使用 3默認 超過5時 極其模糊
 * @return GD image 圖片資源類型
 * @author Martijn Frazer, idea based on http://stackoverflow.com/a/20264482
 */
 private function blur($gdImageResource, $blurFactor = 3)
 {
 // blurFactor has to be an integer
 $blurFactor = round($blurFactor);
 $originalWidth = imagesx($gdImageResource);
 $originalHeight = imagesy($gdImageResource);
 $smallestWidth = ceil($originalWidth * pow(0.5, $blurFactor));
 $smallestHeight = ceil($originalHeight * pow(0.5, $blurFactor));
 // for the first run, the previous image is the original input
 $prevImage = $gdImageResource;
 $prevWidth = $originalWidth;
 $prevHeight = $originalHeight;
 // scale way down and gradually scale back up, blurring all the way
 for($i = 0; $i < $blurFactor; $i += 1)
 {
 // determine dimensions of next image
 $nextWidth = $smallestWidth * pow(2, $i);
 $nextHeight = $smallestHeight * pow(2, $i);
 // resize previous image to next size
 $nextImage = imagecreatetruecolor($nextWidth, $nextHeight);
 imagecopyresized($nextImage, $prevImage, 0, 0, 0, 0,
 $nextWidth, $nextHeight, $prevWidth, $prevHeight);
 // apply blur filter
 imagefilter($nextImage, IMG_FILTER_GAUSSIAN_BLUR);
 // now the new image becomes the previous image for the next step
 $prevImage = $nextImage;
 $prevWidth = $nextWidth;
 $prevHeight = $nextHeight;
 }
 // scale back to original size and blur one more time
 imagecopyresized($gdImageResource, $nextImage,
 0, 0, 0, 0, $originalWidth, $originalHeight, $nextWidth, $nextHeight);
 imagefilter($gdImageResource, IMG_FILTER_GAUSSIAN_BLUR);
 // clean up
 imagedestroy($prevImage);
 // return result
 return $gdImageResource;
 }
 private function image_create_from_ext($imgfile)
 {
 $info = getimagesize($imgfile);
 $im = null;
 switch ($info[2]) {
 case 1: $im=imagecreatefromgif($imgfile); break;
 case 2: $im=imagecreatefromjpeg($imgfile); break;
 case 3: $im=imagecreatefrompng($imgfile); break;
 }
 return $im;
 }
}
$image_blur = new image_blur();
$image_blur->gaussian_blur("./1.jpg",null,null,3);
?>

原圖效果:

生成模糊圖片后的效果:

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com

文檔

php如何實現(xiàn)圖片模糊

php如何實現(xiàn)圖片模糊:php實現(xiàn)圖片模糊的方法:首先創(chuàng)建一個PHP示例文件;然后定義一個image_blur類;接著創(chuàng)建gaussian_blur和blur方法;最后通過$image_blur->gaussian_blur();方法實現(xiàn)圖片模糊。推薦:《PHP視頻教程》本文實例講述了PHP實現(xiàn)生成模糊圖
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top