elgentos/imgproxy-php

darthsim/imgproxy 的 URL 生成器

v3.0.0 2024-09-09 12:26 UTC

This package is auto-updated.

Last update: 2024-09-09 12:56:13 UTC


README

查看 https://github.com/DarthSim/imgproxy.

从 v2.0 版本开始,imgproxy-php 支持高级 URL 生成。请见下文。
imgproxy-php v2.0 完全与 v1.0 兼容,升级时不应有任何问题。
如果这些问题仍然存在,欢迎您提交错误报告,更欢迎您创建拉取请求。

这是一个小型软件包,允许您生成通过 imgproxy 缩放的图片的 URL。

$builder = new UrlBuilder("http://localhost:8080", "< your HEX key >", "< you HEX salt >");

// Generate imgproxy URL for an image, resizing to 300x200 with default settings (*)
$url = $builder->build("http://myimages.localhost/cats.jpg", 300, 200);

// By default, the URL is generated in basic mode
echo $url->toString();

// Customize URL params
$url->setFit("fill")
  ->setWidth(1200)
  ->setHeight(1200)
  ->setGravity("no")
  ->setEnlarge(true);

// switch to advanced URL mode with tons of extra features, superior to the basic mode:
$url->useAdvancedMode();

// set processing options:
$url->options()->withDpr(2)/* -> chain more with<FEATURE>() calls -> ... */;
  
echo $url->toString();

(*) 默认设置

  • 模式:基本(显然,基本模式已被 imgproxy 弃用,未来版本可能将其删除)
  • 适配: fit
  • 重力: sm(智能)
  • 放大: 0(不放大图片)

请参考 imgproxy 文档以了解参数描述和可能的值。

Imgproxy PRO 功能

Imgproxy 的某些功能仅在 PRO 版本中可用。请参阅文档 https://docs.imgproxy.net/generating_the_url_advanced 并注意某些处理选项上的 PRO 标签。在非 PRO 版本的 Imgproxy 实例上使用这些选项将导致 "Invalid URL" 响应

实际测试

在根目录中,您将找到 docker-compose.yml 文件,它将在端口 8080 启动 imgproxy 实例。还有一个 composer 脚本 generate,带参数

  • base : 字符串基本 URL
  • key : 字符串 IMGPROXY_KEY
  • salt : 字符串 IMGPROXY_SALT
  • source : 字符串源图片 URL
  • width : 整数宽度
  • height : 整数高度
  • 高级(无需值)

一旦您通过 docker-compose up 启动了您的本地 docker-compose 集群,您可以使用以下命令调用此脚本

composer run-script generate -- \
  --base <imgproxy base URL> \
  --source <source image URL> \
  --key <IMGPROXY_KEY> \
  --salt <IMGPROXY_SALT>
  --width <width> \
  --height <height> \
  --advanced

# example:  
composer run-script generate -- \
  --base http://localhost:8080 \
  --source http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Cailliau_Abramatic_Berners-Lee_10_years_WWW_consortium.png/330px-Cailliau_Abramatic_Berners-Lee_10_years_WWW_consortium.png \
  --key 943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881 \
  --salt 520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5

请注意,KEY 和 SALT 对提供 docker-compose.yml 启动的 imgproxy 实例有效。您还可以通过提供相关的 basekeysalt 来测试任意自定义 imgproxy 安装的 URL 生成。祝您测试愉快!