PHP图片缩放 加白边

/** * [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 ; }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值