php生成缩略图
2016-04-13 00:00
453 查看
<?php
/**
*生成缩略图
*@authoryangzhiguo0903@163.com
*@paramstring源图绝对完整地址{带文件名及后缀名}
*@paramstring目标图绝对完整地址{带文件名及后缀名}
*@paramint缩略图宽{0:此时目标高度不能为0,目标宽度为源图宽*(目标高度/源图高)}
*@paramint缩略图高{0:此时目标宽度不能为0,目标高度为源图高*(目标宽度/源图宽)}
*@paramint是否裁切{宽,高必须非0}
*@paramint/float缩放{0:不缩放,0<this<1:缩放到相应比例(此时宽高限制和裁切均失效)}
*@returnboolean
*/
function
img2thumb(
$src_img
,
$dst_img
,
$width
=75,
$height
=75,
$cut
=0,
$proportion
=0)
{
if
(!
is_file
(
$src_img
))
{
return
false;
}
$ot
=fileext(
$dst_img
);
$otfunc
=
'image'
.(
$ot
==
'jpg'
?
'jpeg'
:
$ot
);
$srcinfo
=
getimagesize
(
$src_img
);
$src_w
=
$srcinfo
[0];
$src_h
=
$srcinfo
[1];
$type
=
strtolower
(
substr
(image_type_to_extension(
$srcinfo
[2]),1));
$createfun
=
'imagecreatefrom'
.(
$type
==
'jpg'
?
'jpeg'
:
$type
);
$dst_h
=
$height
;
$dst_w
=
$width
;
$x
=
$y
=0;
/**
*缩略图不超过源图尺寸(前提是宽或高只有一个)
*/
if
((
$width
>
$src_w
&&
$height
>
$src_h
)||(
$height
>
$src_h
&&
$width
==0)||(
$width
>
$src_w
&&
$height
==0))
{
$proportion
=1;
}
if
(
$width
>
$src_w
)
{
$dst_w
=
$width
=
$src_w
;
}
if
(
$height
>
$src_h
)
{
$dst_h
=
$height
=
$src_h
;
}
if
(!
$width
&&!
$height
&&!
$proportion
)
{
return
false;
}
if
(!
$proportion
)
{
if
(
$cut
==0)
{
if
(
$dst_w
&&
$dst_h
)
{
if
(
$dst_w
/
$src_w
>
$dst_h
/
$src_h
)