PHP处理压缩、剪裁大量图片问题
时间:2011-12-15
来源:互联网
各位师傅大侠们好,小弟最近想做一个类似于美食图片分享的网站。现在碰到一个问题,就是对用户上传的图片进行压缩、按照不同的尺寸进行裁剪。按照用户的习惯,肯定是单个文件大,文件多。 因为之前没有做过类似的功能,所以无处下手。
个人觉的不可能仅仅用PHP的代码对图像处理就能完成的,不知道有没有类似的第三方插件能解决这个问题。或者其他的解决方案! 在这里谢谢大家了!
个人觉的不可能仅仅用PHP的代码对图像处理就能完成的,不知道有没有类似的第三方插件能解决这个问题。或者其他的解决方案! 在这里谢谢大家了!
作者: nb8724 发布时间: 2011-12-15
你所说的不同尺寸裁剪等问题是指在客户端用户可以框选图片的一部分,然后后台我们帮他裁剪他所框选的那一部分,并进行尺寸的改变,以及大小压缩?
作者: hellodifa 发布时间: 2011-12-15
PHP code
以前弄的 希望对你有帮助
//图片压缩并另存函数 //示例: //if(!scal_pic('pic.jpg','new_pic.jpg')){ die('您上传的图片格式存在问题!'); //然后再删除掉图片文件。。。 } function scal_pic($file_name,$file_new){ //验证参数 if(!is_string($file_name) || !is_string($file_new)){ return false; } //获取图片信息 $pic_scal_arr = @getimagesize($file_name); if(!$pic_scal_arr){ return false; } //获取图象标识符 $pic_creat = ''; switch($pic_scal_arr['mime']){ case 'image/jpeg': $pic_creat = @imagecreatefromjpeg($file_name); break; case 'image/gif': $pic_creat = @imagecreatefromgif($file_name); break; case 'image/png': $pic_creat = @imagecreatefrompng($file_name); break; case 'image/wbmp': $pic_creat = @imagecreatefromwbmp($file_name); break; default: return false; break; } if(!$pic_creat){ return false; } //判断/计算压缩大小 $max_width = 111;//最大宽度,象素,高度不限制 $min_width = 15; $min_heigth = 20; if($pic_scal_arr[0]<$min_width || $pic_scal_arr[1]<$min_heigth){ return false; } $re_scal = 0; if($pic_scal_arr[0]>$max_width){ $re_scal = ($max_width / $pic_scal_arr[0]); } $re_width = round($pic_scal_arr[0] * $re_scal); $re_height = round($pic_scal_arr[1] * $re_scal); //创建空图象 $new_pic = @imagecreatetruecolor($re_width,$re_height); if(!$new_pic){ return false; } //复制图象 if(!@imagecopyresampled($new_pic,$pic_creat,0,0,0,0,$re_width,$re_height,$pic_scal_arr[0],$pic_scal_arr[1])){ return false; } //输出文件 $out_file = ''; switch($pic_scal_arr['mime']){ case 'image/jpeg': $out_file = @imagejpeg($new_pic,$file_new); break; case 'image/jpg': $out_file = @imagejpeg($new_pic,$file_new); break; case 'image/gif': $out_file = @imagegif($new_pic,$file_new); break; case 'image/bmp': $out_file = @imagebmp($new_pic,$file_new); break; default: return false; break; } if($out_file){ return true; }else{ return false; } }
以前弄的 希望对你有帮助
作者: levinstong 发布时间: 2011-12-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28