Source Code for Me (s-c.me)

Allows you to paste souce code to blogs! Adapted for Twitter! Here is Search Form in case you missed your code.
Tags: Php,$p,$pw,$ph,$forceresize,$forcewater,$image_type, Created At: 10/24/2016 8:22:47 PMViews:

HTML view:
Copy Source | Copy HTML
/**
 * @param $p - ID файла
 * @param int $pw - ширина превьюшки
 * @param int $ph - высота превьюшки
 * @param bool $forceresize - ресайзить полббому
 * @param bool $forcewater  - клеить водяной знак
 * @param string $image_type - тип картинки, пока это offers OR users
 * @return bool|string - Путь к превьюшке
 */
function resizeimg2($p, $pw =  0, $ph =  0, $forceresize = false, $forcewater = false, $image_type = 'other'){
    // $no_img = array(
    //     'users' => '/bitrix/templates/rent2011a/images/avatar_big.jpg',
    //     'offers' => '/img/pic_flat_plug_new.jpg',
    // );
    $path_parts[] = substr((string)$p,-3); //Это для того чтоб разбить картинки на папки для оптимизации доступа
    $path_parts[] = substr((string)$p,-2); //Это для еще более эфективной оптимизации!
    $new_pic_path = "/upload/{$image_type}/{$pw}x{$ph}/{$path_parts[0]}/{$path_parts[1]}/";
    $newpic = $new_pic_path."{$p}.jpg";
    $newfilnm=$_SERVER['DOCUMENT_ROOT'].$newpic;
    //Если привьюшка уже есть, отдаем.
    if (file_exists($newfilnm)) {
       return $newpic;
    }
    if (intval($p)) {
        $pic = CFile::GetPath($p);
    }
    if (!$pic) {
        if ($image_type == 'users') {
            $pic = ImageNoFounded($image_type);
            $new_pic_path = "/upload/{$image_type}/{$pw}x{$ph}/";
            $newpic = $new_pic_path."avatar.jpg";
            $newfilnm=$_SERVER['DOCUMENT_ROOT'].$newpic;
            if (file_exists($newfilnm)) {
                return $newpic;
            }
        }
        if ($image_type == 'offers') {
            $pic = ImageNoFounded($image_type);
            $new_pic_path = "/upload/{$image_type}/{$pw}x{$ph}/";
            $newpic = $new_pic_path."offer.jpg";
            $newfilnm=$_SERVER['DOCUMENT_ROOT'].$newpic;
            if (file_exists($newfilnm)) {
                return $newpic;
            }
        }
    }
    //Создаем директорию для новой картинки.
    if(!file_exists($_SERVER['DOCUMENT_ROOT'].$new_pic_path)){
        mkdir($_SERVER['DOCUMENT_ROOT'].$new_pic_path,0755,true);
    }
    if(!$pw && !$ph){return $pic;}
    $filnm = $_SERVER['DOCUMENT_ROOT'].$pic;
    $image_size = getimagesize($filnm);
    if(!$image_size){
        return ImageNoFounded($image_type);
    }
    $iw=$image_size[ 0];$ih=$image_size[1];
    //Новая ресайзилка
    require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/ui/utils/phpThumb/phpthumb.class.php');
    // create phpThumb object
    $phpThumb = new phpThumb();
    $phpThumb->setSourceData(file_get_contents($filnm));
    $output_filename = $newfilnm;
    // PLEASE NOTE:
    // You must set any relevant config settings here. The phpThumb
    // object mode does NOT pull any settings from phpThumb.config.php
    //$phpThumb->setParameter('config_document_root', '/home/groups/p/ph/phpthumb/htdocs/');
    //$phpThumb->setParameter('config_cache_directory', '/tmp/persistent/phpthumb/cache/');
    // set parameters (see "URL Parameters" in phpthumb.readme.txt)
    if($forceresize==true){
        $phpThumb->setParameter('zc', 'C');
    }elseif((intval($iw)/intval($ih)) <  0.8){
        $phpThumb->setParameter('far', 'C'); //--Пропорционально ресайзит и не обрезает ничего
    }else{
        $phpThumb->setParameter('zc', 'C');
      //--обрезает края до нужного соотношения сторон и потом пропорцонально ресайзит
    }
    //$phpThumb->setParameter('iar', 'C'); //--Пропорционально ресайзит, потом если картинка не подходит по соотношению сторон просто сжимает выпирающие наружу части.
    $phpThumb->setParameter('w', $pw);
    $phpThumb->setParameter('h', $ph);
    $phpThumb->setParameter('q', 95);
    if(defined('WATERSIGN') && $forcewater){
        $phpThumb->setParameter('fltr', 'wmi|'. WATERSIGN .'|TR|100|0|40');
    }/*elseif(defined('WATERSIGN_TR') && ($ph > 400 || $pw > 400) ){
        $phpThumb->setParameter('fltr', 'wmi|'. WATERSIGN_TR .'|TR|100|3|40');
    }*/
    // generate & output thumbnail
    if ($phpThumb->GenerateThumbnail()) { // this line is VERY important, do not remove it!
            if ($phpThumb->RenderToFile($output_filename)) {
                    return $newpic;
            } else {
                    // do something with debug/error messages
//                    echo 'Failed:<pre>'.implode("\n\n", $phpThumb->debugmessages).'</pre>';
            }
            $phpThumb->purgeTempFiles();
    } else {
            if($image_type == 'users'){
                return ImageNoFounded($image_type);
            }
            // do something with debug/error messages
  //          echo 'Failed:<pre>'.$phpThumb->fatalerror."\n\n".implode("\n\n", $phpThumb->debugmessages).'</pre>';
    }
}

Based on Manoli.Net's CodeFormatter. Made by Topbot (c) 2008-2017