thumbnails - функция

lub4o

Registered
Здравейте, имам следния код:
Код:
<?php
$folder = 'images/thumbs/';
$origw = 150;
if(isset($_POST['submit']))
    {

        $imagefile = $_FILES['upload']['tmp_name'];
        $filename = strtolower(basename($_FILES['upload']['name']));
        $end = end(explode(".", $filename));
        if($end == "jpg") {
        imagecreatefromjpeg($imagefile);
        list($width, $height) = getimagesize($imagefile);
        $src = imagecreatefromjpeg($imagefile);
        $orig_h = floor($origw * ($height / $width));
        $tmp = imagecreatetruecolor($origw, $orig_h);
        imagecopyresampled($tmp, $src, 0, 0, 0, 0, $origw, $orig_h, $width, $height);
        imagejpeg($tmp, $folder.$filename, 100);
         echo 'Картинка JPG';
        }elseif($end == "gif")
            {
        imagecreatefromgif($imagefile);
        list($width, $height) = getimagesize($imagefile);
        $src = imagecreatefromgif($imagefile);
        $orig_h = floor($origw * ($height / $width));
        $tmp = imagecreatetruecolor($origw, $orig_h);
        imagecopyresampled($tmp, $src, 0, 0, 0, 0, $origw, $orig_h, $width, $height);
        imagegif($tmp, $folder.$filename, 100);
         echo 'Картинка GIF';
        }elseif($end == "png")
            {
        imagecreatefrompng($imagefile);
        list($width, $height) = getimagesize($imagefile);
        $src = imagecreatefrompng($imagefile);
        $orig_h = floor($origw * ($height / $width));
        $tmp = imagecreatetruecolor($origw, $orig_h);
        imagecopyresampled($tmp, $src, 0, 0, 0, 0, $origw, $orig_h, $width, $height);
        imagepng($tmp, $folder.$filename, 100);
        echo 'Картинка PNG';
        }

        
        else{
        
     echo 'Непозволен формат';
    }
    }
?>

Има ли начин кода да бъде записан на по кратко, например някъкси да бъде сложен в функция и да не викам по 2000 реда един и същ код ?
Благодаря ви ! +
 
да има начин освен да го инкуднеш :) ето ти код-а <?php include "пътя до файла/ban.php"; ?> Записваш си фаила и това го слагаш в някоя страница и то ще се появи така мисля :twisted:
 
vbox7_system32 каза:
да има начин освен да го инкуднеш :) ето ти код-а <?php include "пътя до файла/ban.php"; ?> Записваш си фаила и това го слагаш в някоя страница и то ще се появи така мисля :twisted:

Хах.

Ето ти моята функция, която написах преди няколко дена за едно проектче.

Код:
function mkthumb($src, $Twidth) {
		$name = basename(strtolower($src));
		$F = end(explode(".", $name));
		if($F == "jpg" OR $F == "jpeg") {
			$img = imagecreatefromjpeg($src);
		}
		else if($F == "png") {
			$img = imagecreatefrompng($src);
		} else {
                        $img = imagecreatefromgif($src);
                }
		list($width, $height) = getimagesize($src);
		$thumbwidth = $Twidth;
		$thumbheight = round($height*($thumbwidth/$width));
		$thumb = imagecreatetruecolor($thumbwidth, $thumbheight);
		imagecopyresized($thumb, $img, 0, 0, 0, 0, $thumbwidth, $thumbheight, $width, $height);
		imagejpeg($thumb, "DIRECTORY/".$name, 100);
	}

И функцията се извиква така.

mkthumb("пътя до изобр.", с колко ширина да е);

пример

$img = 'http://web-tourist.net/forum/templates/Maxmedia/images/php.png';
$width = 300;
mkthumb($img, $width);

и се създава тъмбнейла с направената дължина, а височината ще е пропорционал, такава каквато да не се развали изображението. Само смени последният ред и вместо DIRECTORY напиши пътя, където да се записват thumb-овете.
 

Back
Горе