background image

PHP 编程:PHP 服务端图片生成缩略图的方法

本文为大家分享介绍 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

); 

//原始尺寸