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

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

     

  • 相关阅读:
    网络学习笔记
    zabbix4.2学习笔记系列
    ansible2.7学习笔记系列
    记一次磁盘UUID不能识别故障处理
    白话ansible-runner--1.环境搭建
    kubernetes的思考
    计算机网络原理精讲第六章--应用层
    计算机网络原理精讲第五章--传输层
    centos7下LVM挂载和扩容
    多线程下载命令--axel
  • 原文地址:https://www.cnblogs.com/seanpan/p/13984420.html
Copyright © 2011-2022 走看看