千家信息网

如何使用PHP实现服务端图片生成缩略图

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍如何使用PHP实现服务端图片生成缩略图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:
千家信息网最后更新 2025年01月16日如何使用PHP实现服务端图片生成缩略图

这篇文章主要介绍如何使用PHP实现服务端图片生成缩略图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

代码如下:

 1,              '200_100'=> 1           );$imagePath = "../image/";function parseUrl($url){   preg_match("/(?P[\w\d]+)_w(?P\d+)_h(?P\d+)\.(?P\w+)/",$url,$match);   return $match;}$urlArr = explode("/",$_SERVER['REQUEST_URI']);$imgName = $urlArr[count($urlArr)-1];$picInfo = parseUrl($imgName);//错误尺寸if(empty($picInfo['width']) || empty($picInfo['height']) ||!array_key_exists($picInfo['width'].'_'.$picInfo['height'],$picSize)) die('不存在该尺寸图片');$originalPic = $imagePath.$picInfo['name'].'/'.$picInfo['name'].'.'.$picInfo['ext'];//原始图不存在if(!file_exists($originalPic)) die("图片不存在!");/** *等比例压缩图片 */switch($picInfo['ext']){   case 'jpg':      $orgImg = ImageCreateFromJpeg($originalPic);      break;   default:       break;}$owidth  =  ImageSX($orgImg); //原始尺寸$oheight =  ImageSY($orgImg);$tW = $picInfo['width'];$tH = $picInfo['height'];//获取缩略图尺寸if($owidth/$oheight > $tW/$tH){    $tH = intval($tW * $oheight/$owidth);}else{     $tW = intval($tH * $owidth/$oheight);}//生成背景图$new_img = ImageCreateTrueColor($picInfo['width'], $picInfo['height']);$bgColor = imagecolorallocate($new_img,255,255,255);if (!@imagefilledrectangle($new_img, 0, 0, $picInfo['width']-1, $picInfo['height']-1, $bgColor)) {    echo "无法创建背景图";  //@todo记录日志    exit(0);}if (!@imagecopyresampled($new_img, $orgImg, ($picInfo['width']-$tW)/2, ($picInfo['height']-$tH)/2, 0, 0, $tW, $tH, $owidth, $oheight)) {    echo "生成图片失败";    exit(0);}//生成图片ob_start();imagejpeg($new_img);$_newImg = ob_get_contents();ob_end_clean();file_put_contents($imagePath.$picInfo['name']."/".$imgName, $_newImg);header("Content-type:image/jpeg; charset=utf-8");imagejpeg($new_img);?>

使用时候绑定apache conf 的 documentError 404 的handler 为此文件。。

以上是"如何使用PHP实现服务端图片生成缩略图"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0