function imagick($source_img,$target_img,$with,$height){ if(is_file($source_img)){ //判断源图片是否存在 $im = new Imagick(); }else{ exit; } $result = $im->readImage($source_img); $srcWH = $im->getImageGeometry(); //获取源图片宽和高 //图片等比例缩放宽和高设置 ,根据宽度设置等比缩放 if($srcWH['width']>$with){ $srcW['width'] = $with; $srcH['height'] = $srcW['width']/$srcWH['width']*$srcWH['height']; }else{ $srcW['width'] = $srcWH['width']; $srcH['height'] = $srcWH['height']; } //按照比例进行缩放 $im->thumbnailImage( $srcW['width'], $srcH['height'], true ); // 按照缩略图大小创建一个有颜色的图片 $new_img= new Imagick(); $new_img->newImage( $srcW['width'], $srcH['height'], 'white', 'jpg' ); //pink,black //合并图片 $new_img->compositeImage( $im, imagick::COMPOSITE_OVER, 0, 0); //生成图片 $new_img->setImageFileName($target_img); $new_img->writeImage(); //输出图片 header( "Content-Type: image/jpg" ); echo $new_img; } imagick('logo.png','111111logo.png',100,100);
环境 windows 7 + php5.3.2
查看phpinfo imagick扩展正常
但是当程序运行到 $result = $im->readImage($source_img); 时,网页就不能访问了。
有人遇到过此类问题么,该怎么解决??
方案: nginx利用image_filter动态生成缩略图
官方参考文档:http://wiki.nginx.org/NginxHttpImageFilterModule
可以参考
PHP等比例缩放图片大小压缩图片空间
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。