zoukankan      html  css  js  c++  java
  • php修改文件夹下的所以图片png改为jpg,也可以作为修改为其他格式的方法

    先说需求,公司的一个项目因为没注意,上传把图片都是为jpg格式的,发现太大了加载很慢。seo说要把所有的png格式改为jpg,也就有今天这篇文章

    上代码

    1.获取一个文件夹下的所有文件绝对路径的

        /**
         * 函数说明:修改文件夹下的所有文件名
         * @param string $path 文件夹路径
         * 作者: panzhide
         * 日期: 2020/11/16
         * 版本: 1.0
         * @return array
         */
        public function getDir($path)
        {
            if (is_dir($path)) {
                $dir =  scandir($path);
                $arr = array();
                foreach ($dir as $value) {
                    $sub_path = $path . '\' . $value;
                    if ($value == '.' || $value == '..') {
                        continue;
                    } else if (is_dir($sub_path)) {
                        $this->getDir($sub_path);
                    } else {
                        //$arr[] = $path . '\' . $value;
                        //直接修改文件名
                        $this->png2jpg($path . '\' . $value);
                    }
                }
            }
        }

     

    2.修改图片格式的

     

    /**
     * 函数说明:jpg转png
     * @param string $srcPathName 文件路径
     * @param string $delOri 是否删除原图片
     * 作者: panzhide
     * 日期: 2020/11/16
     * 版本: 1.0
     * @return array
     */
    public function png2jpg($srcPathName, $delOri = true)
    {
        $srcFile = $srcPathName;
        $srcFileExt = strtolower(trim(substr(strrchr($srcFile, '.'), 1)));
        if ($srcFileExt == 'png') {
            $dstFile = str_replace('.png', '.jpg', $srcPathName);
            $photoSize = GetImageSize($srcFile);
            $pw = $photoSize[0];
            $ph = $photoSize[1];
            $dstImage = ImageCreateTrueColor($pw, $ph);
            imagecolorallocate($dstImage, 255, 255, 255);
            //读取图片
            $srcImage = ImageCreateFromPNG($srcFile);
            //合拼图片
            imagecopyresampled($dstImage, $srcImage, 0, 0, 0, 0, $pw, $ph, $pw, $ph);
            imagejpeg($dstImage, $dstFile, 90);
            if ($delOri) {
                unlink($srcFile);
            }
            imagedestroy($srcImage);
        }
    }

    此方法可适用于修改各类文件格式,做个类型判断就好了

     

  • 相关阅读:
    Xcode一些好用的插件,以及这些插件的管理器
    iOS证书说明和发布
    iOS开发—音乐的播放
    POJ 1287 Networking 【最小生成树Kruskal】
    HDU1233 还是畅通工程【最小生成树】
    POJ 1251 + HDU 1301 Jungle Roads 【最小生成树】
    128 编辑器 【双栈】
    154. 滑动窗口【单调队列】
    5. 多重背包问题 II 【用二进制优化】
    4. 多重背包问题 I
  • 原文地址:https://www.cnblogs.com/seanpan/p/13984420.html
Copyright © 2011-2022 走看看