...

View Full Version : Gifs not workin after Upload



LordFrz
02-26-2012, 11:58 PM
After uploading gifs to my site, they no longer function. The gif plays the animation when I go to it from cpannel but not the website. I asume it has to do with images being resized by the code below. I have tried several thing to remove it from working on Gifs but it crashes site.

Can someone point me in the right direction? I don't need you to write new code, just tell me were I should start. I was messin with the image this area.

if(($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG))



function do_resize_image($file, $width = 0, $height = 0, $proportional = false, $output = 'file')
{
if($height <= 0 && $width <= 0)
{
return false;
}

$info = getimagesize($file);
$image = '';

$final_width = 0;
$final_height = 0;
list($width_old, $height_old) = $info;

if($proportional)
{
if ($width == 0) $factor = $height/$height_old;
elseif ($height == 0) $factor = $width/$width_old;
else $factor = min ( $width / $width_old, $height / $height_old);

$final_width = round ($width_old * $factor);
$final_height = round ($height_old * $factor);

if($final_width > $width_old && $final_height > $height_old)
{
$final_width = $width_old;
$final_height = $height_old;

}
}
else
{
$final_width = ( $width <= 0 ) ? $width_old : $width;
$final_height = ( $height <= 0 ) ? $height_old : $height;
}

switch($info[2])
{
case IMAGETYPE_GIF:
$image = imagecreatefromgif($file);
break;
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($file);
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($file);
break;
default:
return false;
}

$image_resized = imagecreatetruecolor( $final_width, $final_height );

if(($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG))
{
$trnprt_indx = imagecolortransparent($image);

if($trnprt_indx >= 0)
{
$trnprt_color = imagecolorsforindex($image, $trnprt_indx);
$trnprt_indx = imagecolorallocate($image_resized, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
imagefill($image_resized, 0, 0, $trnprt_indx);
imagecolortransparent($image_resized, $trnprt_indx);
}


elseif($info[2] == IMAGETYPE_PNG)
{
imagealphablending($image_resized, false);
$color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127);
imagefill($image_resized, 0, 0, $color);
imagesavealpha($image_resized, true);
}
}
imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old);

switch( strtolower($output))
{
case 'browser':
$mime = image_type_to_mime_type($info[2]);
header("Content-type: $mime");
$output = NULL;
break;
case 'file':
$output = $file;
break;
case 'return':
return $image_resized;
break;
default:
break;
}

if(file_exists($output))
{
@unlink($output);
}

switch($info[2])
{
case IMAGETYPE_GIF:
imagegif($image_resized, $output);
break;
case IMAGETYPE_JPEG:
imagejpeg($image_resized, $output, 100);
break;
case IMAGETYPE_PNG:
imagepng($image_resized, $output);
break;
default:
return false;
}
return true;
}

mlseim
02-27-2012, 12:11 AM
Once you use GD, you've lost the animation. GD does not support animated gif's.

I stand corrected ... there might be a method:
http://www.phpclasses.org/package/3163-PHP-Generate-GIF-animations-from-a-set-of-GIF-images.html

I'm just not familiar with it.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum