佛山百度网络推广seo交互论坛
web/
2025/9/26 16:42:24/
文章来源:
佛山百度网络推广,seo交互论坛,打开百度一下的网址,wordpress下载文件PHP 使用Imagick模块 缩放#xff0c;裁剪#xff0c;压缩图片 包括gif图片缩放 裁剪代码如下:/*** 图片裁剪* 裁剪规则#xff1a;* 1. 高度为空或为零 按宽度缩放 高度自适应* 2. 宽度为空或为零 按高度缩放 宽度自适应* 3. 宽度#xff0c;高度到不为空或为…PHP 使用Imagick模块 缩放裁剪压缩图片 包括gif图片缩放 裁剪代码如下:/*** 图片裁剪* 裁剪规则* 1. 高度为空或为零 按宽度缩放 高度自适应* 2. 宽度为空或为零 按高度缩放 宽度自适应* 3. 宽度高度到不为空或为零 按宽高比例等比例缩放裁剪 默认从头部居中裁剪* param number $width* param number $height*/public function resize($width0, $height0){if($width0 $height0){return;}$color ;// rgba(255,255,255,1);$size $this-image-getImagePage ();//原始宽高$src_width $size [width];$src_height $size [height];//按宽度缩放 高度自适应if($width!0 $height0){if($src_width$width){$height intval($width*$src_height/$src_width);if ($this-type gif) {$this-_resizeGif($width, $height);}else{$this-image-thumbnailImage ( $width, $height, true );}}return;}//按高度缩放 宽度自适应if($width0 $height!0){if($src_height$height){$width intval($src_width*$height/$src_height);if ($this-type gif) {$this-_resizeGif($width, $height);}else{$this-image-thumbnailImage ( $width, $height, true );}}return;}//缩放的后的尺寸$crop_w $width;$crop_h $height;//缩放后裁剪的位置$crop_x 0;$crop_y 0;if(($src_width/$src_height) ($width/$height)){//宽高比例小于目标宽高比例 宽度等比例放大 按目标高度从头部截取$crop_h intval($src_height*$width/$src_width);//从顶部裁剪 不用计算 $crop_y}else{//宽高比例大于目标宽高比例 高度等比例放大 按目标宽度居中裁剪$crop_w intval($src_width*$height/$src_height);$crop_x intval(($crop_w-$width)/2);}if ($this-type gif) {$this-_resizeGif($crop_w, $crop_h, true, $width, $height,$crop_x, $crop_y);} else {$this-image-thumbnailImage ( $crop_w, $crop_h, true );$this-image-cropImage($width, $height,$crop_x, $crop_y);}}针对gif图片的处理方法代码如下:/*** 处理gif图片 需要对每一帧图片处理* param unknown $t_w 缩放宽* param unknown $t_h 缩放高* param string $isCrop 是否裁剪* param number $c_w 裁剪宽* param number $c_h 裁剪高* param number $c_x 裁剪坐标 x* param number $c_y 裁剪坐标 y*/private function _resizeGif($t_w, $t_h, $isCropfalse, $c_w0, $c_h0, $c_x0, $c_y0){$dest new Imagick();$color_transparent new ImagickPixel(transparent); //透明色foreach($this-image as $img){$page $img-getImagePage();$tmp new Imagick();$tmp-newImage($page[width], $page[height], $color_transparent, gif);$tmp-compositeImage($img, Imagick::COMPOSITE_OVER, $page[x], $page[y]);$tmp-thumbnailImage ( $t_w, $t_h, true );if($isCrop){$tmp-cropImage($c_w, $c_h, $c_x, $c_y);}$dest-addImage($tmp);$dest-setImagePage($tmp-getImageWidth(), $tmp-getImageHeight(), 0, 0);$dest-setImageDelay($img-getImageDelay());$dest-setImageDispose($img-getImageDispose());}$this-image-destroy ();$this-image $dest;}保存时压缩处理代码如下:// 保存到指定路径public function save_to($path) {//压缩图片质量$this-image-setImageFormat(JPEG);$this-image-setImageCompression(Imagick::COMPRESSION_JPEG);$a $this-image-getImageCompressionQuality() * 0.60;if ($a 0) {$a 60;}$this-image-setImageCompressionQuality($a);$this-image-stripImage();if ($this-type gif) {$this-image-writeImages ( $path, true );} else {$this-image-writeImage ( $path );}}ImagickService.php代码如下:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82287.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!