Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка в ресайзе изображения
 
 автор: zzzsss   (13.04.2008 в 16:48)   письмо автору
 
 

Появляется вот такая ошибка, хотя скрипт свое делает.

PHP Warning: imagedestroy(): supplied argument is not a valid Image resource

Соответственно ошибка в строках:
imagedestroy($filename);
imagedestroy($t);
imagedestroy($thumb);

Собственно сам скрипт:
___________________________________________________________________

function thumb($filename,$x,$y=0)
{

if (!file_exists($filename)){
        exit();
    };

$t=getimagesize($filename) or die('Unknown type of image');
$width=$t[0];
$height=$t[1];
switch ($t[2])
{
case 1:
$type='GIF';
$img=imagecreatefromgif($filename);
break;
case 2:
$type='JPEG';
$img=imagecreatefromjpeg($filename);
break;
case 3:
$type='PNG';
$img=imagecreatefrompng($filename);
break;
}
if($y==0)
{$y=$x*($height/$width);}

header("Content-type: image/jpeg");
$thumb=imagecreatetruecolor($x,$y);
ImageCopyResampled($thumb, $img, 0, 0, 0, 0,$x,$y,$width,$height);
$thumb=imagejpeg($thumb);

imagedestroy($filename);
imagedestroy($t);
imagedestroy($thumb);

return $thumb;
}
 echo thumb($filename,100);



Если кто знает в чем проблема скажите пожалуйста.

   
 
 автор: sim5   (13.04.2008 в 17:22)   письмо автору
 
   для: zzzsss   (13.04.2008 в 16:48)
 

Вы не открываете ресурсов: $filename и $t, которые потом пытаетесь закрыть (собственно вы пытаетесь освободить память, которая не была распределена вами), на это вам и указывает ошибка. Вы должны освободить ресурсы:
imagedestroy($img);
imagedestroy($thumb);

   
 
 автор: zzzsss   (13.04.2008 в 17:27)   письмо автору
 
   для: sim5   (13.04.2008 в 17:22)
 

Спасибо. Закрыл. Но все равно на последнюю строчку осталась ошибка:

//imagedestroy($filename);
//imagedestroy($t);
imagedestroy($thumb);

PHP Warning: imagedestroy(): supplied argument is not a valid Image resource

Точнее сначала тупанул, без ошибок работает так:

//imagedestroy($filename);
//imagedestroy($t);
imagedestroy($img);
//imagedestroy($thumb);


Но правильно ли это что закрыто - imagedestroy($thumb); ?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования