TalkPHP

TalkPHP (http://www.talkphp.com/forums.php)
-   General (http://www.talkphp.com/general/)
-   -   Script works and does what I want, but timeouts (http://www.talkphp.com/general/2899-script-works-does-what-i-want-but-timeouts.html)

j4v1 06-04-2008 06:49 PM

Script works and does what I want, but timeouts
 
hello everyone.

I'm trying to find out what do have to do in my script in order to have it end quietly and not take forever to timeout?

The script currently grabs a web image and resizing it down to a gif. The end result will be that I call the test.php script from and html and have it display the newly resized image on the html file. If someone could help in both that would be great!

Thanks,
j4v1

PHP Code:

<?php
resize
("./""http://images.wsdot.wa.gov/nwflow/flowmaps/sysvert.gif""538""./");
function 
resize($cur_dir$cur_file$newwidth$output_dir)
{
    
$dir_name $cur_dir;
    
$olddir getcwd();
    
$dir opendir($dir_name);
    
$filename $cur_file;
    
$format='image/gif';
    if (
preg_match("/resize/i""$filename"))
    {
        
$format 'image/gif';
    }
    if(
$format!='')
    {
        list(
$width$height) = getimagesize($filename);
        
$newheight=$height*$newwidth/$width;
        switch(
$format)
        {
            case 
'image/gif';
            
$source imagecreatefromgif($filename);
            break;
        }
        
$dimg imagecreatetruecolor(640,538);
        
imagealphablending($dimgfalse);
        
$source imagecreatefromgif("$filename");
        
imagecopyresized($dimg$source0,0,0,438$newwidth$newheight$width$height);
        
$filename="$output_dir/test1.gif";
        
imagegif($dimg,$filename);
    }
}
?>


delayedinsanity 06-04-2008 07:42 PM

For one thing, you're creating $source twice. And you may be able to forgo the imagealphablending() in favour of just using imagecopyresampled(). Try this after your switch statement?

PHP Code:

    $dimg imagecreatetruecolor($newwidth$newheight);
    
imagecopyresampled($dimg$source0000$newwidth$newheight$width$height);
    
$filename="$output_dir/test1.gif";
    if (
imagegif($dimg$filename)) {
        
imagedestroy($dimg);
        
imagedestroy($source);
        return 
true;
    } else {
        
imagedestroy($dimg);
        
imagedestroy($source);
        return 
false;
    } 

I would've rewritten the whole thing just to be sure, but I'm in the middle of cleaning my bedroom. Between my wife and the pets, it's hurricane katrina in there.
-m


All times are GMT. The time now is 10:58 AM.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0