本文介绍了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 .jpg,'1200px ','1200px);



以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。