You are here

public static function BlazyUtil::imageDimensions in Blazy 8.2

Provides original unstyled image dimensions based on the given image item.

2 calls to BlazyUtil::imageDimensions()
Blazy::urlAndDimensions in src/Blazy.php
Builds URLs, cache tags, and dimensions for an individual image.
BlazyFormatter::extractFirstItem in src/BlazyFormatter.php
Extract the first image item to build colorbox/zoom-like gallery.

File

src/BlazyUtil.php, line 142

Class

BlazyUtil
Provides Blazy utilities.

Namespace

Drupal\blazy

Code

public static function imageDimensions(array &$settings, $item = NULL, $initial = FALSE) {
  $width = $initial ? '_width' : 'width';
  $height = $initial ? '_height' : 'height';
  $uri = $initial ? '_uri' : 'uri';
  if (empty($settings[$width])) {
    $settings[$width] = $item && isset($item->width) ? $item->width : NULL;
    $settings[$height] = $item && isset($item->height) ? $item->height : NULL;
  }

  // Only applies when Image style is empty, no file API, no $item,
  // with unmanaged VEF/ WYSIWG/ filter image without image_style.
  // Prevents 404 warning when video thumbnail missing for a reason.
  if (empty($settings['image_style']) && empty($settings[$width]) && !empty($settings[$uri])) {
    $abs = empty($settings['uri_root']) ? $settings[$uri] : $settings['uri_root'];
    if ($data = @getimagesize($abs)) {
      list($settings[$width], $settings[$height]) = $data;
    }
  }

  // Sometimes they are string, cast them integer to reduce JS logic.
  $settings[$width] = empty($settings[$width]) ? NULL : (int) $settings[$width];
  $settings[$height] = empty($settings[$height]) ? NULL : (int) $settings[$height];
}