基于PHP服务端图片生成缩略图的方法详解
2015-01-24信息快讯网
本篇文章是对PHP服务端图片生成缩略图的方法进行了详细的分析介绍,需要的朋友参考下
<?php //定义缩略图片尺寸 $picSize = array( '100_100'=> 1, '200_100'=> 1 ); $imagePath = "../image/"; function parseUrl($url){ preg_match("/(?P<name>[\w\d]+)_w(?P<width>\d+)_h(?P<height>\d+)\.(?P<ext>\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实现图片添加水印功能
php生成excel文件的简单方法
php制作中间带自己定义图片二维码的方法
php 根据url自动生成缩略图并处理高并发问题
php 生成短网址原理及代码
php使用qr生成二维码的示例分享
php生成缩略图示例代码分享(使用gd库实现)
使用php伪造referer的方法 利用referer防止图片盗链
php使用base64加密解密图片示例分享
PHP上传图片进行等比缩放可增加水印功能
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
php生成缩略图填充白边(等比缩略图方案)
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
使用PHP求两个文件的相对路径
解析thinkphp中的导入文件标签
解析PHP生成静态html文件的三种方法
解析php中两种缩放图片的函数,为图片添加水印
php缩放图片(根据宽高的等比例缩放)实例介绍
php生成zip压缩文件的方法详解
如何使用php绘制在图片上的正余弦曲线
如何用php生成扭曲及旋转的验证码图片
PHP之生成GIF动画的实现方法
利用PHP实现图片等比例放大和缩小的方法详解
php将gd生成的图片缓存到memcache的小例子
php图片的裁剪与缩放生成符合需求的缩略图