php Imagick 实现等比缩放图片
2012-02-13 11:50
1271 查看
网站本来是用GD实现的等比图片的缩放,后来在网上发现Imagick比GD更好一些所以重写了一个方法是用Imagick来实现图片的等比缩放!
代码如下:
代码如下:
/** * 使用imagick 等比缩放图片 * @param string $source_img 源图片地址 * @param string $target_img 缩放后图片地址 * @param int $with 缩放后图片宽度 * @param int $height 缩放后图片高度 */ public 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; } }
相关文章推荐
- PHP实现图片的等比缩放和Logo水印功能示例
- php实现按指定大小等比缩放生成上传图片缩略图的方法
- PHP实现图片的等比缩放和Logo水印功能示例
- php实现按指定大小等比缩放生成上传图片缩略图的方法
- php实现按指定大小等比缩放生成上传图片缩略图的方法
- PHP上传图片进行等比缩放
- PHP imagick 实现 PDF 转 图片
- PHP上传图片进行等比缩放可增加水印功能
- css sprite与background-size结合实现背景图片等比缩放
- PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
- PHP中图片实现等比例不失真缩放
- [ php or jsp ] + jquery.imgareaselect 处理图片截图等比缩放!
- JAVAScript如何实现图片等比缩放
- java将图片缩放实现类(能将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换)
- 基于jquery实现等比缩放图片
- 基于PHP实现等比压缩图片大小
- PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
- android 利用ImagevView加载本地图片并实现等比缩放
- <转>javascript实现图片的等比缩放
- php实现等比例不失真缩放上传图片