Получение обработанного изображения

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