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);
        }
    }

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

     

  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/seanpan/p/13984420.html
Copyright © 2011-2022 走看看