php图片压缩gif图,兼容正常其他图格式。

使用php进行等比压缩gif图片,压缩完毕会还是动图。

安装:Mac电脑
第一步:安装:brew install ImageMagick
第二步:安装:sudo pecl install imagick
  • 在安装imagick的时候会有一个提示下面这个:

Please provide the prefix of [ImageMagick] installation [autodetect] :
这里输入你的:ImageMagick 安装路径例如:/usr/local/opt/imagemagick下,我的是在这个下面。

  • 如果安装提示:Please reinstall the pkg-config distribution 那么你需要安装这个:
brew install pkg-config

接下来都安装完会有一行:Successful的显示。
安装完毕后会自动给你添加到php.ini文件里面一个扩展:

extension="imagick.so"

完事重启php

//重启命令-根据自己系统来。
brew services restart php
//查看扩展命令
php -m

完事开始代码块:

use Imagick;
public function gif($inputFile,$outputFile)
    {
        // 定义压缩级别(默认值为75)
        $quality = 70;
        try {
            // 创建一个新的 Imagick 对象
            $imagick = new Imagick();
            // 读取 GIF 文件
            $imagick->readImage($inputFile);
            // 设置压缩质量(0-100)
            $imagick->setImageCompressionQuality($quality);
            // 获取所有帧
            $imagick = $imagick->coalesceImages();
            // 保持动图效果并进行压缩
            $imagick = $imagick->coalesceImages();
            foreach ($imagick as $frame) {
                // 重新设置大小-有两个,我需要很小,所以选择下面。
                // $frame->resizeImage(80, 80, Imagick::FILTER_LANCZOS, 1);
                // 重新设置大小
                $frame->scaleImage(80, 80);
                // 设置背景颜色
                $frame->setImageBackgroundColor('white');
                // 量化图像的颜色表
                $frame->quantizeImage(256, Imagick::COLORSPACE_RGB, 0, false, false);

                // 设置压缩质量
                $frame->setImageCompressionQuality($quality);
            }
            $imagick = $imagick->deconstructImages();

            // 保存压缩后的GIF
            $imagick->writeImages($outputFile, true);

            return response()->download($outputFile)->deleteFileAfterSend(true);
        } catch (\Exception $e) {
            return response()->json(['error' => $e->getMessage()], 500);
        }
    }


//调用
$filePath = '你图片的路径';
$thumbnailPath = "压缩后的图片路径";
$this->giftt($filePath,$thumbnailPath);

这个就是压缩的图片流程,有什么不懂的可以私信。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容