【问题标题】:Optimize images - Losslessly compress images in php [closed]优化图像 - 在 php 中无损压缩图像 [关闭]
【发布时间】:2021-02-01 18:03:54
【问题描述】:

图像存储在与我使用的服务器不同的服务器中。有没有办法使用 php 无损压缩它们,压缩后将图像显示到我的站点,而无需将图像下载到我的服务器并存储它们?我无权访问存储图像的服务器。我只能将它们下载到我的服务器。现在我只是使用图片的 url 将图像加载到我的网站,但 GTmetrix 不断提到无损压缩图像。有什么想法吗?

【问题讨论】:

    标签: php lossless-compression gtmetrix


    【解决方案1】:

    您可以使用kraken-php image API 之类的东西来实现您的目标,前提是您有权访问服务器的文件。如果您安装并运行了 composer,您也可以使用它,但同样,您需要以某种方式访问​​服务器。如果您决定访问可以使用他们的install page 安装的文件。您可以选择立即在文件中返回请求,也可以将其发布到服务器可以访问的 URL。您的请求可能类似于:

    {
        "auth": {
            "api_key": "your-api-key",
            "api_secret": "your-api-secret"
        },
        "url": "http://image-url.com/file.jpg",
        "wait": true
    }
    

    您的回复可能类似于:

    {
        "success": true,
        "file_name": "file.jpg",
        "original_size": 324520,
        "kraked_size": 165358,
        "saved_bytes": 159162,
        "kraked_url": "http://dl.kraken.io/d1aacd2a2280c2ffc7b4906a09f78f46/file.jpg"
    }
    

    用于设置响应的 PHP 代码可能类似于:

    require_once("Kraken.php");
    
    $kraken = new Kraken("your-api-key", "your-api-secret");
    
    $params = array(
        "file" => "/path/to/image/file.jpg",
        "wait" => true,
        "webp" => true,
        "lossy" => false
    );
    
    $data = $kraken->upload($params);
    

    您可以像处理普通 JSON 请求一样处理响应,并且可以查询处理后图像的图像 URL。但是,您需要注册他们的 API,这不是免费的。如果您正在寻找功能较少的免费解决方案,您可以查看pngquant。巧合的是,像 Kraken 这样的服务是这样工作的,但是拥有一个强大的系统设置需要更长的时间。同样,您将需要某种形式的服务器访问权限。否则,你真的无能为力。

    【讨论】:

      猜你喜欢
      • 2015-02-24
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 2016-01-09
      • 2011-02-07
      • 2013-12-28
      • 1970-01-01
      相关资源
      最近更新 更多