Получение обработанного изображения
Компонент возвращает уменьшенное изображение и обычно используется для генерации preview.
Но при модификации может дополнительно накладывать watermark или производить другие операции перед выдачей изображения.
Конфигурация:
<?php
$g_config['get_img'] = array();
// Путь к картинке, которая будет показана если не удалось загрузить оригинальную
$g_config['get_img']['upl_file_path'] = BASEPATH . 'i/image/no_photo.jpg';
// Путь для загрузки файлов и картинок
$g_config['get_img']['tmp_file_path'] = 'upl/';
// Путь куда сохранять сгенерированные preview изображения
$g_config['get_img']['no_image_path'] = 'tmp/';
// Цвет заливки фона
$g_config['get_img']['fill_color'] = array(255, 255, 255);
// Максимально возможная шинира картинки
$g_config['get_img']['max_w'] = 1600;
// Максимально возможная высота картинки
$g_config['get_img']['max_h'] = 1200;
?>
Большинство параметров конфигурации (а точнее все кроме max_w и max_h) можно переопределить при вызове компонента.
Для использования компонента, вам нужно объявить ваш php скрипт,
который будет возвращать изображения, например src/get_user_img.php, со следующим содержимым:
<?php
IncludeCom("dev/get_img", array
(
"file" => Get("file"),
));
?>
Данный скрипт будет возвращать изображения, лежащие в папке указанной в переменной $g_config['get_img']['upl_file_path'].То есть при вызове mysite.com/get_user_img?file=a.jpg, он вернет в выходной поток файл /upl/a.jpg.
Если модифицировать файл следующим образом:
<?php
IncludeCom("dev/get_img", array
(
"file" => Get("file"),
"width" => Get("w"),
"height" => Get("h")
));
?>
То скрипт уже будет генерировать временные изображения и складировать их в папку указанную в $g_config['get_img']['tmp_file_path'] (а в будущем брать из кеша).То есть при вызове mysite.com/get_user_img?file=a.jpg&w=100&h=100, он сгенерирует временный файл с разрешением не больше 100х100 сохранит в /tmp/100_100/a.jpg и его вернет в выходной поток.
Еще при вызове компонента можно указать параметр mode:
<?php
IncludeCom("dev/get_img", array
(
"file" => Get("file"),
"mode" => "fitout",
"width" => Get("w"),
"height" => Get("h")
));
?>
Он принимает значение "scale", "fitin" и "fitout". Значение по умолчанию "scale".Для работы значений "fitin" и "fitout" обязательно должны быть указаны width и height.
Для работы значения "scale" достаточно указать либо width, либо height.
То как разные значения влияют на результат можно увидеть на следующей картинке:
При вызове компонента можно переопределить и другие параметры конфигурации:
<?php
// Относительный путь к каталогу в котором будет происходить поиск исходной картинки
$srcPath = 'upl/test/';
// Относительный путь к каталогу в котором будет сохранана обработанная картинка
$tmpPath = 'tmp/test/';
// Полный путь к картинке, которая будет взята вместо исходной, если та не будет найдена
$noImgPath = BASEPATH . 'i/image/get_img_fail2.png';
$fillColor = array(255, 0, 0);
IncludeCom("dev/get_img", array
(
"srcPath" => $srcPath,
"tmpPath" => $tmpPath,
"noImgPath" => $noImgPath,
"fillColor" => $fillColor,
"file" => Get("file"),
"mode" => Get("mode"),
"width" => Get("w"),
"height" => Get("h"),
));
?>