手机
当前位置:查字典教程网 >编程开发 >php教程 >基于PHP服务端图片生成缩略图的方法详解
基于PHP服务端图片生成缩略图的方法详解
摘要:复制代码代码如下:使用时候绑定apacheconf的documentError404的handler为此文件。。

复制代码 代码如下:

<?php

//定义缩略图片尺寸

$picSize = array(

'100_100'=> 1,

'200_100'=> 1

);

$imagePath = "../image/";

function parseUrl($url){

preg_match("/(?P<name>[wd]+)_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的图形函数中显示汉字

PHP 判断数组是否为空的5大方法

php查询whois信息的方法

PHP输出一个等腰三角形的方法

教你IIS6的PHP最佳配置方法

使用PHP制作新闻系统的思路

PHP获取photoshop写入图片文字信息的方法

php生成图片缩略图的方法

PHP准确取得服务器IP地址的方法

php将图片文件转换成二进制输出的方法

精品推荐
分类导航