rapidez/image-resizer

Rapidez 图像调整大小

2.0.1 2024-07-26 13:51 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 版。有关更多信息,请参阅 许可证文件