/** * Трансформировать картинку. * * @param string $val Путь или псевдопуть к картинке. * @param mixed $params Параметры в формате JSON. * Возможные значения ключей: * 'w' или 'width' - (int) Максимальная ширина картинки. * 'h' или 'height' - (int) Максимальня высота картинки. * 'r' или 'ratio' - (array) Пропорции картинки. Первый элемент -(int) ширина, второй - (int) высота * или * (string)Строка в формате (int)x(int). * 'q' или 'quality' - (int) Качество нового изображения. Число от 10 до 100. По умолчанию - 80. * 'p' или 'progressive'- (bool) Прогрессив. 1 - да, 0 - нет. * 'b' или 'background' - (string)Цвет фона для прозрачных PNG картинок. Формат: FF00A1. * @return string */ public static function transform($val, $params = array()) { if (!empty($params)) { $urlParams = self::getParams($val); if (isset($urlParams['i']) and $urlParams['i'] !== '') { $newParams = array('i' => $urlParams['i']); $r = isset($params['ratio']) ? 'ratio' : 'r'; if (isset($params[$r])) { $params['c'] = is_array($params[$r]) ? $params[$r][0] . 'x' . $params[$r][1] : $params[$r]; } unset($params[$r]); foreach ($params as $key => &$value) { $k = substr($key, 0, 1); $newParams[$k] = $value; $value = $k . $value; } $path = explode('/', $urlParams['i']); $path[count($path) - 2] .= '/' . implode(self::$config['splitter'], $params); $url = implode('/', $path); self::$temp->setParams($url, $newParams); return $url; } else { return false; } } else { return $val; } }