/** * [cut_img 图片缩放加白边] * Author: 程威明 * @param array $imgs 图片路径数组 * @param array $info 图片宽高数组array('width','height') * @param bool $cover 是否覆盖原图,默认不覆盖 * @return array 若覆盖原图返回裁剪数量,不覆盖返回图片路径组成的数组 */
function zoom_img($imgs=array(),$infoarr=array(500,500),$cover=false){
//判断是否为数组(必须是一个以图片路径组成的数组)
$imgs
= is_array(
$imgs
)?
$imgs
:
array
(
$imgs
);
$i
=
0
;
foreach
(
$imgs
as
$file
){
//如果不覆盖原图,可重新定义图片保存路径
if
(
false
==
$cover
){
$file
=
$file
; }
//要保存的宽
$saveWidth
=
$infoarr
[
0
];
//要保存的高
$saveHeight
=
$infoarr
[
1
];
//判断图片是否存在
if
(!file_exists(
$file
))
continue
;
//获取图片信息
$imgize
= getimagesize(
$file
);
//图片宽度
$width
=
$imgize
[
0
];
//图片高度
$height
=
$imgize
[
1
];
//原宽高比
$ratio
=
$width
/
$height
;
//判断图片原宽高比与裁剪宽高比的大小
if
(
$width
>=
$height
){
$height
=
$saveWidth
/
$ratio
;
$width
=
$saveWidth
; }
else
{
$width
=
$saveHeight
*
$ratio
;
$height
=
$saveHeight
; }
//创建源图的实例
$src
= imagecreatefromstring(file_get_contents(
$file
));
if
(
false
!=
$src
){
//创建图像
$final_image
= imagecreatetruecolor(
$saveWidth
,
$saveHeight
);
//定义颜色
$color
= imagecolorallocate(
$final_image
,
255
,
255
,
255
);
//定义为透明色
imagecolortransparent(
$final_image
,
$color
);
//填充
imagefill(
$final_image
,
0
,
0
,
$color
);
$x
= round((
$saveWidth
-
$width
) /
2
);
$y
= round((
$saveHeight
-
$height
) /
2
); imagecopyresized(
$final_image
,
$src
,
$x
,
$y
,
0
,
0
,
$width
,
$height
,
$imgize
[
0
],
$imgize
[
1
]);
//保存
if
(
false
==
$cover
){
$file
= rtrim(dirname(
$file
),
'/'
).
'/z_'
.basename(
$file
);
$save_file
[] =
$file
; } imagejpeg(
$final_image
,
$file
); imagedestroy(
$final_image
); imagedestroy(
$src
); }
$i
++; }
if
(
false
==
$cover
){
return
$save_file
; }
else
{
return
$i
; }}
PHP图片缩放 加白边
最新推荐文章于 2021-10-24 12:12:06 发布