Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/helpers/image_helper.php
Show First 20 Lines • Show All 113 Lines • ▼ Show 20 Line(s) | |||||
if (!is_numeric($params['max_height'])) { | if (!is_numeric($params['max_height'])) { | ||||
$params['max_height'] = $params['target_height']; | $params['max_height'] = $params['target_height']; | ||||
} | } | ||||
$src_path = dirname($src_image); | $src_path = dirname($src_image); | ||||
$transform_keys = Array ('crop_x', 'crop_y', 'fill', 'wm_filename'); | $transform_keys = Array ('crop_x', 'crop_y', 'fill', 'wm_filename'); | ||||
// Resize required OR watermarking required -> change resulting image name ! | |||||
if ($needs_resize || array_intersect(array_keys($params), $transform_keys)) { | if ( $needs_resize || array_intersect(array_keys($params), $transform_keys) ) { | ||||
// resize required OR watermarking required -> change resulting image name ! | // Escape replacement patterns, like "\<number>". | ||||
$src_path_escaped = preg_replace('/(\\\[\d]+)/', '\\\\\1', $src_path); // escape replacement patterns, like "\<number>" | $src_path_escaped = preg_replace('/(\\\[\d]+)/', '\\\\\1', $src_path); | ||||
$dst_image = preg_replace('/^'.preg_quote($src_path, '/').'(.*)\.(.*)$/', $src_path_escaped . DIRECTORY_SEPARATOR . 'resized\\1_' . crc32(serialize($params)) . '.\\2', $src_image); | $params_hash = kUtil::crc32(serialize($this->fileHelper->makeRelative($params))); | ||||
$dst_image = preg_replace( | |||||
'/^' . preg_quote($src_path, '/') . '(.*)\.(.*)$/', | |||||
$src_path_escaped . DIRECTORY_SEPARATOR . 'resized\\1_' . $params_hash . '.\\2', | |||||
$src_image | |||||
); | |||||
$this->fileHelper->CheckFolder( dirname($dst_image) ); | $this->fileHelper->CheckFolder( dirname($dst_image) ); | ||||
if (!file_exists($dst_image) || filemtime($src_image) > filemtime($dst_image)) { | if (!file_exists($dst_image) || filemtime($src_image) > filemtime($dst_image)) { | ||||
// resized image not available OR should be recreated due source image change | // resized image not available OR should be recreated due source image change | ||||
$params['dst_image'] = $dst_image; | $params['dst_image'] = $dst_image; | ||||
$image_resized = $this->ScaleImage($src_image, $params); | $image_resized = $this->ScaleImage($src_image, $params); | ||||
if (!$image_resized) { | if (!$image_resized) { | ||||
▲ Show 20 Lines • Show All 581 Lines • Show Last 20 Lines |