本文
介绍了PHP
图片裁剪和缩放的例子,废话不多,具体代码如下:
*
* exif_imagetype --确定图像的
类型 *
功能描述:功能是将图像切割成任意大小的图像,使图像不变形。
*
参数说明:
输入需要
处理图片的
文件名,生成新图片的文件名,生成新图片的宽度,并生成新图片。
* /
获取任意大小的图像,缺少局部张力,不变形,不留空白。
功能image_resize(src_file美元,dst_file美元美元美元,new_width,new_height)
{
new_width = intval美元(美元new_width);
new_height = intval美元(美元new_width);
如果($ new_width<1美元| | new_height<1)
{
回声params宽度或高度误差!;
出口();
}
如果(!file_exists($ src_file))
{
echo $ src_file。不存在!;
出口();
}
图像类型
类型= exif_imagetype美元(美元src_file);
support_type美元=阵列(imagetype_jpeg,imagetype_png,imagetype_gif);
如果(!in_array(合式,support_type美元,真的))
{
这种类型的图像不
支持!只支持JPG,GIF);
出口();
}
加载映像
开关($类型)
{
案例imagetype_jpeg:
src_img = imagecreatefromjpeg美元(美元src_file);
打破;
案例imagetype_png:
src_img = imagecreatefrompng美元(美元src_file);
打破;
案例imagetype_gif:
src_img = imagecreatefromgif美元(美元src_file);
打破;
违约:
加载图像
错误!;
出口();
}
W = imagesx美元(美元src_img);
$h = imagesy ($src_img);
ratio_w美元= 1 * $ new_width / $ W;
ratio_h美元= 1 * new_height美元/美元小时;
美元= 1;
生成的图像宽度比原始图像小,或者两者
都是大比例放大的原理,大比例(缩小的比例相对较小)。
如果((ratio_w美元1美元ratio_h > 1))
{
如果($ ratio_w << ratio_h美元){
ratio_h美元美元比率=;
A/高度方向,比小宽比高,按比例缩小或放大
{人}
ratio_w美元美元比率=;
}
临时映像定义了图像的中间长宽比,只满足
目标需求。
inter_w美元=(int)($ new_width /价格比);
inter_h美元=(int)($ new_height /价格比);
inter_img美元=新建一个真彩色图像(inter_w美元,美元inter_h);
/ / var_dump($ inter_img);
imagecopy(inter_img美元,src_img美元,0, 0, 0,0,inter_w美元,美元inter_h);
对临时对象图像的大小生成一个最大的边缘长度是$比。
定义新图像
new_img美元=新建一个真彩色图像(new_width美元,美元new_height);
/ / var_dump($ new_img);出口();
imagecopyresampled(new_img美元,inter_img美元,0, 0, 0,0,new_width美元,new_height美元美元美元,inter_w,inter_h);
开关($类型)
{
案例imagetype_jpeg:
存储映像
imagejpeg(new_img美元,dst_file美元,100);
打破;
案例imagetype_png:
imagepng(new_img美元,dst_file美元,100);
打破;
案例imagetype_gif:
imagegif(new_img美元,dst_file美元,100);
打破;
违约:
打破;
}
如果1,则结束
一方大于原来的 2目标图像,边缘小于原来的,第一放大和削减和平的形象。
/ / =如果(($ ratio_w 1)| |($ ratio_w > 1美元ratio_h<1))
{其他
美元美元的比率= ratio_h > ratio_w ratio_h:ratio_w美元美元美元;
取一大部分的值
高清晰度图像的中间,图像和目标图像的等高度或宽度,然后放大原始图像。
inter_w美元=(int)($ W * $比);
inter_h美元=(int)($ H * $比);
inter_img美元=新建一个真彩色图像(inter_w美元,美元inter_h);
原来的缩放比例削减
imagecopyresampled(inter_img美元,src_img美元,0, 0, 0,0,inter_w美元,inter_h美元美元美元,W,H);
定义新图像
new_img美元=新建一个真彩色图像(new_width美元,美元new_height);
imagecopy(new_img美元,inter_img美元,0, 0, 0,0,new_width美元,美元new_height);
开关($类型)
{
案例imagetype_jpeg:
存储映像
imagejpeg(new_img美元,dst_file美元,100);
打破;
案例imagetype_png:
imagepng(new_img美元,dst_file美元,100);
打破;
案例imagetype_gif:
imagegif(new_img美元,dst_file美元,100);
打破;
违约:
打破;
}
} / / IF3
结束
函数 输出新图像
image_resize(测试。JPG,'demo .webp,'1200px ','1200px);
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。