你的站点因为图片加载而反应慢嘛?
一个图片动辄1-2Mb?
快来部署一个图像转换压缩接口吧 体验图像压缩后的极致速度🤖🤖

操作方法

建立站点

傻瓜式基本操作 再问敲你脑袋

部署代码

创建一个index.php 文件,将以下代码写入

<?php
ini_set('memory_limit', '256M');
// 获取传入的图像地址
if (isset($_GET['img_url'])) {
    $imgUrl = $_GET['img_url'];
    
    $file_data = file_get_contents($imgUrl);
    // 将图像内容保存成临时文件
    $uniqueString = uniqid() . '_' . mt_rand();
    $tempImagePath = 'temp_images/temp_image_' . $uniqueString . '.tmp';
    file_put_contents($tempImagePath, $file_data);

    // 获取临时图像文件的信息
    $imgInfo = getimagesize($tempImagePath);
    if ($imgInfo) {
        list($width, $height, $imgType) = $imgInfo;

        // 根据图像类型打开图像
        if ($imgType === IMAGETYPE_WEBP) {
            // 设置响应头
            header('Content-Type: image/webp');
            readfile($tempImagePath); // 直接输出原始WebP图像
        } elseif ($imgType === IMAGETYPE_JPEG || $imgType === IMAGETYPE_PNG) {
            $inputImage = imagecreatefromstring($file_data);
            
            // // 下载并保存原始图像 测试压缩率的
            // $imgFolder = 'img/';
            // $originalImagePath = $imgFolder . 'original_image' . image_type_to_extension($imgType);
            // file_put_contents($originalImagePath, $file_data);
            
            if ($inputImage) {
                // 创建输出WebP图像
                ob_start();
                imagewebp($inputImage, null, 80);
                $webpContent = ob_get_clean();

                // 设置响应头
                header('Content-Type: image/webp');
                header('Content-Length: ' . strlen($webpContent));

                // 输出WebP图像
                echo $webpContent;

                // 释放资源
                imagedestroy($inputImage);
            } else {
                echo "无法打开图像。";
            }
        } else {
            echo "不支持的图像类型。仅支持JPEG、PNG和WebP图像。";
        }

        // 删除临时图像文件
        unlink($tempImagePath);
    } else {
        echo "无法获取图像信息。";
    }
} else {
    echo "请提供img_url参数,指定图像地址。";
}

使用

然后,你可以通过传递img_url参数来调用这个接口,如下所示

http://your-domain.com/?img_url=http://your-domain.com/image.jpg

这就可以直接输出转换后的WebP图像。
但请确保你的服务器支持getimagesizeGD库扩展以及HTTP头设置 推荐使用PHP7.4