php缩略图填充白边的示例代码
时间:2021-07-01 10:21:17
帮助过:18人阅读
//源图的路径,可以是本地文件,也可以是远程图片 - $src_path = '1.jpg';
- //最终保存图片的宽
- $width = 160;
- //最终保存图片的高
- $height = 120;
//源图对象 - $src_image = imagecreatefromstring(file_get_contents($src_path));
- $src_width = imagesx($src_image);
- $src_height = imagesy($src_image);
//生成等比例的缩略图 - $tmp_image_width = 0;
- $tmp_image_height = 0;
- if ($src_width / $src_height >= $width / $height) {
- $tmp_image_width = $width;
- $tmp_image_height = round($tmp_image_width * $src_height / $src_width);
- } else {
- $tmp_image_height = $height;
- $tmp_image_width = round($tmp_image_height * $src_width / $src_height);
- }
$tmpImage = imagecreatetruecolor($tmp_image_width, $tmp_image_height); - imagecopyresampled($tmpImage, $src_image, 0, 0, 0, 0, $tmp_image_width, $tmp_image_height, $src_width, $src_height);
//添加白边 - $final_image = imagecreatetruecolor($width, $height);
- $color = imagecolorallocate($final_image, 255, 255, 255);
- imagefill($final_image, 0, 0, $color);
$x = round(($width - $tmp_image_width) / 2); - $y = round(($height - $tmp_image_height) / 2);
imagecopy($final_image, $tmpImage, $x, $y, 0, 0, $tmp_image_width, $tmp_image_height); //输出图片 - header('Content-Type: image/jpeg');
- imagejpeg($final_image);
|