hcesrl/php-responsive-image-sizes

根据响应式图片的内在宽度和屏幕上的宽度检索正确的尺寸

1.0.3 2021-11-19 15:50 UTC

This package is auto-updated.

Last update: 2024-09-19 22:35:23 UTC


README

安装

composer require hcesrl/php-responsive-image-sizes

用法

请参考原始的javascript库文档以获取更多信息:https://github.com/HCESrl/responsive-image-sizes

以下是一个基本示例

<?php
use Hcesrl\PhpResponsiveImageSizes\BaseSizes;
use Hcesrl\PhpResponsiveImageSizes\DeviceType;
use Hcesrl\PhpResponsiveImageSizes\ResponsiveImagesSizes;

require 'vendor/autoload.php';

var_dump(ResponsiveImagesSizes::getResponsiveSizes(DeviceType::All(), new BaseSizes(BaseSizesType::Granular())));

ResponsiveImagesSizes::getResponsiveSizes 函数接受以下参数

  • $deviceType 枚举值:基于 marc-mabe/php-enum 库的可用的枚举 DeviceType 值之一;
  • BaseSizes 类实例:构造函数期望一个基于 marc-mabe/php-enum 库的可用的枚举 BaseSizesType 值。如果您选择 BaseSizesType::Custom() 值,则期望第二个参数(见下文);
  • $sourceImageWidth 整数,默认值为 3220,更多信息请参阅js库文档;
  • $widthOnPage 整数,默认值为 100,更多信息请参阅js库文档;
  • $topSize 整数,默认值为 1920,更多信息请参阅js库文档;

如果您想使用自定义的 BaseSizes 集合,您应该声明一个符合以下模式的数组,并将其用作第二个 BaseSizes 类构造函数的参数

[
    'desktop' => [
        -- values --
    ],
    'tabletPortrait => [
        -- values --
    ],
    'smartphone' => [
        -- values --
    ]
]

示例

$customSizes = [
    DeviceType::Desktop => [
      1440,
      1280,
      1024
    ],
    DeviceType::TabletPortrait => [
      1024,
      768
    ],
    DeviceType::Smartphone => [
      828,
      750,
      720,
      640
    ]
];
var_dump(ResponsiveImagesSizes::getResponsiveSizes(DeviceType::All(), new BaseSizes(BaseSizesType::Custom(), $customSizes)));

输出示例

(
    [0] => 1024
    [1] => 1280
    [2] => 1440
)