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等比例缩放图片大小压缩图片空间