rapidez / image-resizer
Rapidez 图像调整大小
Requires
- php: ^8.0|^8.1|^8.2
- illuminate/http: ^9.0|^10.0|^11.0
- illuminate/routing: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
- rapidez/core: ~0.54|^1.0|^2.0
- spatie/image: ^3.3
This package is auto-updated.
Last update: 2024-09-25 10:57:04 UTC
README
此扩展不仅加载来自 Magento 的完整大图像,还调整图像大小。它通过将 Magento 图像路径传递到图像路由来实现: /storage/{store id}/resizes/{size}/magento/{file}
。
例如,一个产品图像位于: https://magentowebsite.com/media/catalog/product/a/a/product-image.jpg
,路径将是 /catalog/product/a/a/product-image.jpg
。要获取最大宽度为 200 像素的此图像,请访问: /storage/1/resizes/200/magento/catalog/product/a/a/product-image.jpg
。如果您还想指定最大高度: /storage/1/resizes/200x200/magento/catalog/product/a/a/product-image.jpg
。
如果 URL 以 .webp
结尾,则还会进行自动 webp 转换,例如 /storage/1/resizes/200x200/magento/catalog/product/a/a/product-image.jpg.webp
。这将使它从 https://magentowebsite.com/media/catalog/product/a/a/product-image.jpg
中检索图像,调整其大小,将其格式化为 webp,并将其保存为 /storage/1/resizes/200x200/magento/catalog/product/a/a/product-image.jpg.webp
。
安装
此包默认安装在 Rapidez 中。但如果被删除,您可以使用以下方式重新安装
composer require rapidez/image-resizer
并确保您已运行 php artisan storage:link
从 SKU 获取图像
您可以使用产品的 SKU 来检索产品图像。此功能默认启用,但可以在配置文件中的 sku.enabled
值中切换。
要使用 SKU 检索产品图像,请请求如下路径: /storage/1/resizes/200x200/sku/13706
。您还可以这样请求 webp: /storage/1/resizes/200x200/sku/13706.webp
。
配置
请注意,您必须将所有大小列入白名单以避免 ddos 攻击!发布配置并指定您想要的大小
php artisan vendor:publish --provider="Rapidez\ImageResizer\ImageResizerServiceProvider" --tag=config
外部来源
如果您正在使用来自其他外部位置(请参阅 CMS 集成)的图像,您可以添加该来源
'external' => [
'strapi' => env('STRAPI_URL'),
],
现在,您可以使用以下路径来调整外部来源的图像大小
<img src="{{ '/storage/' . config('rapidez.store') . '/resizes/<size>/strapi'.$data->image->url }}" />
或使用 Laravel 的路由功能
<img src="{{ route('resized-image', [ 'store' => config('rapidez.store'), 'size' => '<size>', 'placeholder' => 'strapi', 'file' => $data->image->url ]) }}" />
它的工作原理
图像从媒体 URL 下载并存储在 /storage/app/public/<store>/resizes
中。由于使用了 php artisan storage:link
创建的符号链接,因此文件随后对公众可用。因为路由与路径相同,所以如果文件存在,则首先尝试由 web 服务器提供该文件,否则将通过 PHP 调整大小并创建它。
删除调整大小
可以使用以下 artisan 命令删除图像调整大小
php artisan rapidez:resizes:delete {store?}
许可证
GNU 通用公共许可证第 3 版。有关更多信息,请参阅 许可证文件。