/**
 * Создаёт уменьшенную копию изображения.
 * @param        $SrcFileName Исходный файл.
 * @param string $DstFileName Имя файла для сохранения уменьшенной копии.
 * @param int    $MaxWidth    Максимальная ширина уменьшенной копии.
 * @param int    $MaxHeight   Максимальная высота уменьшенной копии.
 * @param bool   $Stretch     Растягивать ли картинку если заданные размеры больше исходных.
 * @param null   $SaveFormat  Формат сохранения миниатюры (jpeg, png, gif, wbmp).
 * @return \TPicture
 */
function CreateThumb($SrcFileName, $DstFileName = '', $MaxWidth = 0, $MaxHeight = 0, $Stretch = false, $SaveFormat = null)
{
    $thumb = new TPicture($SrcFileName);
    if ($DstFileName == '') {
        return $thumb;
    } elseif (is_file($DstFileName)) {
        unlink($DstFileName);
    }
    if ($Stretch || ($MaxWidth > 0 || $MaxHeight > 0) && ($thumb->Width > $MaxWidth || $thumb->Height > $MaxHeight)) {
        $thumb->SetImageSize($MaxWidth, $MaxHeight);
    }
    $thumb->SaveToFile($DstFileName, $SaveFormat);
    return $thumb;
}
function AdminUserSaveAvatar()
{
    $alloy_mime = array('image/gif' => '.gif', 'image/jpeg' => '.jpg', 'image/pjpeg' => '.jpg', 'image/png' => '.png', 'image/x-png' => '.png');
    include_once System::config('inc_dir') . 'picture.class.php';
    $asize = getimagesize($_FILES['avatar']['tmp_name']);
    $alloy_mime = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');
    $alloy_exts = array('.gif', '.jpg', '.jpeg', '.png');
    if (in_array($_FILES['avatar']['type'], $alloy_mime) && in_array(strtolower(GetFileExt($_FILES['avatar']['name'])), $alloy_exts)) {
        $NewName = $_FILES['avatar']['name'];
        if ($asize[0] > System::config('user/max_avatar_width') || $asize[1] > System::config('user/max_avatar_height')) {
            $thumb = new TPicture($_FILES['avatar']['tmp_name']);
            $thumb->SetImageSize(System::config('user/max_avatar_width'), System::config('user/max_avatar_height'));
            $thumb->SaveToFile(System::config('general/avatars_dir') . $NewName);
        } else {
            copy($_FILES['avatar']['tmp_name'], System::config('general/avatars_dir') . $NewName);
        }
        Audit('Пользователи: Добавление аватара в галерею аватар "' . $NewName . '"');
    } else {
        System::admin()->AddCenterBox('Загрузка аватара');
        System::admin()->HighlightError('Неправильный формат аватара. Ваш аватар должен быть формата GIF, JPEG или PNG.<br /><a href="javascript:history.go(-1)">Назад в галерею</a>');
    }
    GO(ADMIN_FILE . '?exe=user&a=avatars');
}