Проблем със създаването на постери!

HKOne

Registered
Здравейте, имам проблем със един код за постери.
Кодът трябва да добавя снимка в папка /images/(името примерно : 182736128374.jpg) в реален размер, също така трябва да го добавя и в папка /images/thumbs/(името примерно thumb_182736128374.jpg) като постер със зададен размер 100x147 px. Но проблема е там че добавя само постера в реален размер, но не го добавя в зададен размер, папката /images/thumbs/ ми е празна. Моля помогнете :)
Ето го и кода create_poster.php
PHP:
<?php
////////////////////////// ОБЛОЖКА ////////////////////////////////
$server=getenv("HTTP_REFERER");

//Дефиниране на максимален размер за качената картинка
define ("MAX_SIZE","10000");
// Дефинирайте широчината и височината на малкото копие
define ("WIDTH","100");
define ("HEIGHT","147");

//Това е функцията, която ще създаде малкото копие от каченото изображение
// Оразмеряването ще бъде направено спрямо дефинираните широчината и височината,
//но без деформиране на изображението
function make_thumb($img_name,$filename,$new_w,$new_h)
{
//Получаване на разширението на снимката.
$ext=getExtension($img_name);
//Създава се ново изображение използваики подходяща функция от GD библиотеката
if(!strcmp("jpg",$ext) || !strcmp("jpeg",$ext))
$src_img=imagecreatefromjpeg($img_name);

if(!strcmp("png",$ext))
$src_img=imagecreatefrompng($img_name);

if(!strcmp("gif",$ext))
$src_img=imagecreatefromgif($img_name);


//Получаване на оразмеряването
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);

// след което ще сметнем ново оразмеряване на малкото копие
// в следващите стъпки ще направим:
// 1. Смятаме съотношението, като заменим старото оразмеряване с ново.
// 2. Ако ширината е по-голяма, тя ще се промени до максимално зададената
// и височината така ще се сметне, че да не се развали оразмеряването.
// 3. В противен случай ще използваме височината на изображението
// като запазим оразмеряването.
$thumb_w=$new_w;
$thumb_h=$new_h;

// Създаваме нова картинка с новото оразмеряване
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);

// оразмерете голямото изображение на новото и създаваме ново
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);

// Извеждаме създаденото изображение към файла. Сега ще имаме малко копие на файла $filename
if(!strcmp("png",$ext))
imagepng($dst_img,$filename);

//Разрушава източника на изображението.
imagedestroy($dst_img);
imagedestroy($src_img);
}

// Тази функция чете разширението на файла.
// Тя е използвана да определи дали файла е картинка.
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}

// Тази променлива е използвана като флаг.
//Стойността е инициализирана с 0 (Значи няма открити грешки)
//и ще се промени на 1 ако е намерена грешка. Тогава файла няма да се качи.
$errors=0;

/////////////////////// ОБЛОЖКА ///////////////////////////

?>
 
Ако не ти се занимава да разучаваш функциите на GD, използвай готова библиотека. Най-популярната за тази цел е PHPThumb.

Ето линк към Basic Usage :?:
 
Абсолютно елементарно е връзването на тая библиотека. .

require_once 'path/ThumbLib.inc.php';

PHP:
try {
     $thumb = PhpThumbFactory::create($tmp_file);
   
     $thumb->resize(100, 100); // Създаваме тъмбчето
     $thumb->save($location); // Запазваме го на диска
}
catch (Exception $e) {
     // handle error here however you'd like
}

https://github.com/masterexploder/PHPThumb/wiki/Getting-Started
 

Back
Горе