php按照指定的尺寸压缩图片

Posted 潘潘潘的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php按照指定的尺寸压缩图片相关的知识,希望对你有一定的参考价值。

    /**     
     * * 按照指定的尺寸压缩图片     
     * * @param $source_path  原图路径
     * * @param $imgWidth     目标宽度
     * * @param $imgHeight    目标高度
     * * @return bool|string     
    */    
    function resize_image($source_path, $imgWidth, $imgHeight)
            
        $source_info = getimagesize($source_path);        
        $source_mime = $source_info[\'mime\'];        
        switch ($source_mime)             
            case \'image/gif\':
                $source_image = imagecreatefromgif($source_path);                
                break;
            case \'image/jpeg\':
                $source_image = imagecreatefromjpeg($source_path);                
                break;
            case \'image/png\':
                $source_image = imagecreatefrompng($source_path);                
                break;
            default:
                return false;
                break;        
        
        $target_image  = imagecreatetruecolor($imgWidth, $imgHeight); //创建一个彩色的底图
        imagecopyresampled($target_image, $source_image, 0, 0, 0, 0, $imgWidth, $imgHeight, $source_info[0], $source_info[1]);
        if(!imagejpeg($target_image, $source_path))
            $source_path = \'\';
        
        imagedestroy($target_image);
        return $source_path;
    

 

微信小程序图片压缩

参考技术A

微信小程序图片压缩有三种方法,一种是使用官方提供的接口 wx.compressImage(Object object) ;一种是通过压缩图片的大小,利用canvas重绘来得到压缩图片;最后一种安装第三方图片压缩包。

由于第一种方法网上很多人说压缩不明显或者失效,所以选择使用canvas重绘来实现图片压缩。同时,该种方法可以控制图片的最大尺寸,保持上传图片大小尺寸相差不多。在我们的学生节晚会小程序中,屏幕显示图片会比较美观一致。

1. 通过 wx.chooseImage 接口选择相机图片

2. 通过 wx.getImageInfo 接口获取图片信息(长宽,类型)

3. 计算压缩比例和最终图片的长宽

5. 通过 wx.canvasToTempFilePath 接口将画布内容导出为图片并获取图片路径

wxml 文件

在文件末尾插入 canvas 组件,通过设置left和top值确保图片不会显示在可视范围内。

一定要设置 canvas-id,这是canvas绘图和导出图片必备的属性。

js 文件

设置与页面绑定的数据:canvas的大小,也是压缩后图片的大小

1. 将画布内容导出为图片时,指定destWidth和destHeight为压缩后图片的大小。这里遇到过玄学bug,不指定的话,有时候图片不会压缩到规定的大小。

以上是关于php按照指定的尺寸压缩图片的主要内容,如果未能解决你的问题,请参考以下文章

使用 opencv 将图片压缩到指定文件尺寸

OpenCV教程(11)-- 图像压缩操作

图片压缩之处理小图片压缩策略

求助java压缩图片存储大小的方法

微信小程序图片压缩

PHP getimagesize()获取图片尺寸等信息