[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по коду
inecs
Так как не особо силён в PHP требуется ваша помошь.
Что имеем:
Файл makethumb.php :

Код
class thumbnail
{
    var $img;
    var $watermark_image_light;
    var $watermark_image_dark;

    function thumbnail($imgfile)
    {
        //detect image format
        $this->img["format"]=ereg_replace(".*\.(.*)$","\\1",$imgfile);
        $this->img["format"]=strtoupper($this->img["format"]);
        if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG") {
            //JPEG
            $this->img["format"]="JPEG";
            $this->img["src"] = @imagecreatefromjpeg ($imgfile);
        } elseif ($this->img["format"]=="PNG") {
            //PNG
            $this->img["format"]="PNG";
            $this->img["src"] = @imagecreatefrompng ($imgfile);
        } elseif ($this->img["format"]=="GIF") {
            //GIF
            $this->img["format"]="GIF";
            $this->img["src"] = @imagecreatefromgif ($imgfile);
        } else {
            //DEFAULT
            echo "Not Supported File! Thumbnails can only be made from .jpg, gif and .png images!";
            exit();
        }
        $this->img["lebar"] = @imagesx($this->img["src"]);
        $this->img["tinggi"] = @imagesy($this->img["src"]);
        $this->img["lebar_thumb"] = $this->img["lebar"];
        $this->img["tinggi_thumb"] = $this->img["tinggi"];
        //default quality jpeg
        $this->img["quality"]=90;

        if ($this->img["src"] == "") {
            echo "Not Supported File! Thumbnails can only be made from .jpg, gif and .png images!";
            @unlink($imgfile);
            exit();

        }
    }

function size_auto($size=100)
{ global $gd_version;

    if ($this->img["lebar"] <= $size AND $this->img["tinggi"] <= $size ) {
        $this->img["lebar_thumb"] = $this->img["lebar"];
        $this->img["tinggi_thumb"] = $this->img["tinggi"];
        return 0;
    } elseif ($this->img["lebar"]>=$this->img["tinggi"])
        {
            $this->img["lebar_thumb"]=$size;
            $this->img["tinggi_thumb"] = ($this->img["lebar_thumb"]/$this->img["lebar"])*$this->img["tinggi"];
        } else {
            $this->img["tinggi_thumb"]=$size;
            $this->img["lebar_thumb"] = ($this->img["tinggi_thumb"]/$this->img["tinggi"])*$this->img["lebar"];
    }

    if($gd_version==1)
          {
           $this->img["des"] = imagecreate($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);
           @imagecopyresized ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);
          }
    elseif($gd_version==2)
           {
            $this->img["des"] = imagecreatetruecolor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);
            @imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);
            }

    $this->img["src"] = $this->img["des"];
    return 1;
}

function jpeg_quality($quality=90)
    {
        //jpeg quality
        $this->img["quality"]=$quality;
    }

function save($save="")
{

        if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG") {
            //JPEG
            imagejpeg($this->img["src"],"$save",$this->img["quality"]);
        } elseif ($this->img["format"]=="PNG") {
            //PNG
            imagepng($this->img["src"],"$save");
        } elseif ($this->img["format"]=="GIF") {
            //GIF
            imagegif($this->img["src"],"$save");
        }

        imagedestroy($this->img["src"]);
}


function show ()
{
        if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG") {
            //JPEG
            imageJPEG($this->img["src"],"",$this->img["quality"]);
        } elseif ($this->img["format"]=="PNG") {
            //PNG
            imagePNG($this->img["src"]);
        } elseif ($this->img["format"]=="GIF") {
            //GIF
            imageGIF($this->img["src"]);
        }

        imagedestroy($this->img["src"]);
}

// *************************************************************************
function insert_watermark($min_image)
    { global $config;
        $margin = 7;

        $this->watermark_image_light = ROOT_DIR.'/templates/'.$config['skin'].'/dleimages/watermark_light.png';
        $this->watermark_image_dark =  ROOT_DIR.'/templates/'.$config['skin'].'/dleimages/watermark_dark.png';

        $image_width = imagesx($this->img["src"]);
        $image_height = imagesy($this->img["src"]);

        list($watermark_width, $watermark_height)
            = getimagesize($this->watermark_image_light);


                $watermark_x = $image_width - $margin - $watermark_width;
                $watermark_y = $image_height - $margin - $watermark_height;


        $watermark_x2 = $watermark_x + $watermark_width;
        $watermark_y2 = $watermark_y + $watermark_height;

        if ($watermark_x < 0 OR $watermark_y < 0 OR
            $watermark_x2 > $image_width OR $watermark_y2 > $image_height OR
            $image_width < $min_image OR $image_height < $min_image)
        {
           return;
        }


        $test = imagecreatetruecolor(1, 1);
        imagecopyresampled($test, $this->img["src"], 0, 0, $watermark_x, $watermark_y, 1, 1, $watermark_width, $watermark_height);
        $rgb = imagecolorat($test, 0, 0);

        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;

        $max = min($r, $g, $b);
        $min = max($r, $g, $b);
        $lightness = (double)(($max + $min) / 510.0);
        imagedestroy($test);

        $watermark_image = ($lightness < 0.5) ? $this->watermark_image_light : $this->watermark_image_dark;

        $watermark = imagecreatefrompng($watermark_image);

        imagealphablending($this->img["src"], TRUE);
        imagealphablending($watermark, TRUE);

        imagecopy($this->img["src"], $watermark, $watermark_x, $watermark_y, 0, 0,$watermark_width, $watermark_height);

        imagedestroy($watermark);

    }


}




Есть такой фрагмент кода:

Код
        include_once ENGINE_DIR.'/inc/makethumb.php';            

        $thumb=new thumbnail(ROOT_DIR."/uploads/posts/".$file_prefix.$image_name);

        if ($thumb->size_auto($config['max_image'])) {

           $thumb->jpeg_quality($config['jpeg_quality']);

              if ($config['allow_watermark'] == "yes") $thumb->insert_watermark($config['max_watermark']);

           $thumb->save(ROOT_DIR."/uploads/posts/thumbs/".$file_prefix.$image_name);
           @chmod (ROOT_DIR."/uploads/posts/thumbs/".$file_prefix.$image_name, 0666);

        }

        if (file_exists(ROOT_DIR."/uploads/posts/thumbs/".$file_prefix.$image_name))
           $img_result_th .="<div><font color=blue>$current_image -> $lang[images_thok]</font></div>";

        if ($config['allow_watermark'] == "yes") {

        $thumb=new thumbnail(ROOT_DIR."/uploads/posts/".$file_prefix.$image_name);
        $thumb->jpeg_quality($config['jpeg_quality']);
        $thumb->insert_watermark($config['max_watermark']);
        $thumb->save(ROOT_DIR."/uploads/posts/".$file_prefix.$image_name);

        }

    }//if file is uploaded succesfully

   if ($urlcopy == "yes") break;

  }
}
}


который отвечает за создание полной картинки в директории /images/posts и маленькой картинки в директории /images/posts/thumbs

Вопрос в следующем, как переправить код, что помимо этих двух картинок создавалось ещё две. 1 размером 50х50 пикселей и сохранялась в папку /images/posts/small и другая размером 160х160 в папку /images/posts/medium

Буду очень признателен...



Спустя 2 часа, 57 минут, 43 секунды (5.05.2007 - 12:05) Patrick написал(а):
Сам писал код?

Спустя 1 час, 59 минут, 44 секунды (5.05.2007 - 14:05) inecs написал(а):
Цитата(Patrick @ 5.5.2007, 9:05) [snapback]19833[/snapback]
Сам писал код?


Еслиб сам писал, не спрашивал )))

Спустя 2 часа, 13 минут, 33 секунды (5.05.2007 - 16:18) Rem написал(а):
в работу)

Спустя 3 часа, 1 минута, 9 секунд (5.05.2007 - 19:19) PHPLion написал(а):
как говорит md5 : "многобукав".)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.