一个根据宽高补白的缩略图

<?php

//获取原图的目录
$file='./src.jpg';

//有一个原图创建一个新的图像
$file_img=imagecreatefromjpeg($file);
//缩略图的大小
$temp_w=100;
$temp_h=100;
//创建缩略图的画布
$temp_img=imagecreatetruecolor($temp_w, $temp_h);


//填充颜色
$bg_color=imagecolorallocate($temp_img,0xff, 0xff, 0xff);
imagefill($temp_img,0,0,$bg_color);//填充的区域

 


//采集区域
$src_area_x=0;
$src_area_y=0;
$src_area_w = $src_w = imageSx($file_img);
$src_area_h = $src_h = imagesy($file_img);

 

//判断
//  宽之比与高之比的关系
if ($src_w/$temp_w > $src_h/$temp_h) {
 // 宽缩放大,宽标准
 $temp_area_w = $temp_w;
 $temp_area_h = $src_h/$src_w * $temp_area_w;//
} else {
 // 高缩放大,高标准
 $temp_area_h = $temp_h;
 $temp_area_w = $src_w/$src_h * $temp_area_h;
}
$temp_area_x = ($temp_w-$temp_area_w) / 2;
$temp_area_y = ($temp_h-$temp_area_h) / 2;

//输出
//imagecopyresampled($temp_img, $file_img, $temp_area_x, $temp_area_y, $src_area_x, $src_area_y, $temp_w, $temp_h, $src_w, $src_h);

imagecopyresampled($temp_img, $file_img, $temp_area_x, $temp_area_y, $src_area_x, $src_area_y, $temp_area_w, $temp_area_h, $src_area_w, $src_area_h);
//定义输出的文件
header('content-Type:image/jpeg');

imagejpeg($temp_img);

imagedestroy($file_img);
imagedestroy($temp_img);

 

转载于:https://www.cnblogs.com/love1226/p/4502218.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值