PHP实现的自定义图像居中裁剪函数示例【测试可用】

开发技术 作者: 2024-08-18 02:25:01
这篇文章主要介绍了PHP实现的自定义图像居中裁剪函数,结合实例形式分析了php针对图片的获取、计算、裁剪、保存等相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP实现的自定义图像居中裁剪函数。分享给大家供大家参考,具体如下:

图像居中裁减的大致思路:

1.首先将图像进行缩放,使得缩放后的图像能够恰好覆盖裁减区域。(imagecopyresampled — 重采样拷贝部分图像并调整大小)

2.将缩放后的图像放置在裁减区域中间。(imagecopy — 拷贝图像的一部分)

3.裁减图像并保存。(imagejpeg | imagepng | imagegif — 输出图象到浏览器或文件)

具体代码:

($target_w / $target_h)); $resize_w = $judge ? ($source_w * $target_h) / $source_h : $target_w; $resize_h = !$judge ? ($source_h * $target_w) / $source_w : $target_h; $start_x = $judge ? ($resize_w - $target_w) / 2 : 0; $start_y = !$judge ? ($resize_h - $target_h) / 2 : 0; /* 绘制居中缩放图像 */ $resize_img = imagecreatetruecolor($resize_w,$resize_h); imagecopyresampled($resize_img,$image,$resize_w,$resize_h,$source_w,$source_h); $target_img = imagecreatetruecolor($target_w,$target_h); imagecopy($target_img,$resize_img,$start_x,$start_y,$resize_h); /* 将图片保存至文件 */ if (!file_exists(dirname($target))) mkdir(dirname($target),0777,true); switch (exif_imagetype($source)) { case IMAGETYPE_JPEG: imagejpeg($target_img,$target); break; case IMAGETYPE_PNG: imagepng($target_img,$target); break; case IMAGETYPE_GIF: imagegif($target_img,$target); break; } // return boolval(file_exists($target));//PHP5.5以上可用boolval()函数获取返回的布尔值 return file_exists($target)?true:false;//兼容低版本PHP写法 }
"; echo "
"; echo "修改后图片480*480为:"; }

运行效果:

原图1440*900为:


修改后图片480*480为:

同理,480*320,、800*600等尺寸的图片只需修改相应参数即可。

附:代码测试中遇到的问题

报错:

call an undefined function exif_imagetype()

解决方法:

打开扩展 extension=PHP_exif.dll

并将extension=PHP_mbstring.dll,放到extension=PHP_exif.dll前边

另:

boolval()函数为PHP5.5版本以上才能使用的函数,本文测试代码中为兼容低版本,使用如下语句代替:

PS:这里再为大家推荐几款相关的图片在线工具供大家参考使用:

在线图片格式转换(jpg/bmp/gif/png)工具:

在线PS图像处理工具:

ICO图标在线生成工具:

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《》

希望本文所述对大家PHP程序设计有所帮助。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_64119.html