Получение обработанного изображения
Компонент возвращает уменьшенное изображение и обычно используется для генерации 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"), )); ?>