Jump to content

Recommended Posts

Ok so i figured the source part out but im still gettin errors on this

 

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/streamru/public_html/classes/gd.inc.php on line 273

 

Warning: imagegif(): supplied argument is not a valid Image resource in /home/streamru/public_html/classes/gd.inc.php on line 308

 

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/streamru/public_html/classes/gd.inc.php on line 311

 

function thumbnail($imgfile="",$width="",$height="")
$this->img["src"] = imagecreatefromjpeg($imgfile);


273:  $this->img["des"] = imagecreatetruecolor($this->img["width_thumb"],$this->img["height_thumb"]);

308:  imagegif($this->img["des"],$save);

311:  imagedestroy($this->img["des"]);

Link to comment
https://forums.phpfreaks.com/topic/64756-still-getting-these-errors/
Share on other sites

Here is all of the code

<?php

class thumbnail
{
var $img;

function thumbnail($imgfile="",$width="",$height="")
{
	global $config;

	//detect image format
	$this->img["format"]=ereg_replace(".*\.(.*)$","\\1",$imgfile);
	$this->img["format"]=strtoupper($this->img["format"]);

	if($config['gdversion']>0)
	{

		if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG")
		{
			//JPEG
			$this->img["format"]="JPEG";
			$this->img["src"] = imagecreatefromjpeg($imgfile);

		}
		elseif($this->img["format"]=="PNG")
		{
			//PNG
			$this->img["format"]="PNG";
			$this->img["src"] = imagecreatefrompng($imgfile);
		}
		elseif ($this->img["format"]=="GIF")
		{
			//GIF
			$this->img["format"]="GIF";
			$this->img["src"] = imagecreatefromgif($imgfile);
		}
		else
		{
			//DEFAULT
			echo "Not Supported File!";
			exit();
		}

		if($width>0 && $height>0)
		{

			$this->img["width"] = $width;
			$this->img["height"] = $height;

		}
		else
		{

			@$this->img["width"] = imagesx($this->img["src"]);
			@$this->img["height"] = imagesy($this->img["src"]);

		}

		//default quality jpeg
		$this->img["quality"] = $config['gdquality'];

	}
	else
	{

		return FALSE;

	}

}

function size_custom($width=100, $height=100)
{
	// custom
	$this->img["width_thumb"] = $width;
    	$this->img["height_thumb"] = $height;
}


function size_width($size=100)
{
	// width
	$this->img["width_thumb"]=$size;
    	@$this->img["height_thumb"] = ($this->img["width_thumb"]/$this->img["width"])*$this->img["height"];
}

function size_height($size=100)
{
	// height
	$this->img["height_thumb"]=$size;
    	@$this->img["width_thumb"] = ($this->img["height_thumb"]/$this->img["height"])*$this->img["width"];
}

function size_auto($size=100)
{
	// size automatically
	if ($this->img["width"]>=$this->img["height"])
	{
    	
		$this->img["width_thumb"]=$size;
    		@$this->img["height_thumb"] = ($this->img["width_thumb"]/$this->img["width"])*$this->img["height"];

	}
	else
	{
    	
		$this->img["height_thumb"]=$size;
    		@$this->img["width_thumb"] = ($this->img["height_thumb"]/$this->img["height"])*$this->img["width"];

	}

}

function jpeg_quality($quality=80)
{
	//jpeg quality
	$this->img["quality"]=$quality;
}

function randImage($rand)
{

	global $glob;

	$bgColor = imagecolorallocate ($this->img["src"], 255, 255, 255);
	$textColor = imagecolorallocate ($this->img["src"], 0, 0, 0);
	$lineColor = imagecolorallocate ($this->img["src"], 215, 215, 215);

	// Add  Random polygons

	$noise_x = $this->img["width"] - 5;
	$noise_y = $this->img["height"] - 2;

	for ($i=0; $i<3; $i++){
		$polyCoords = array(
		   rand(5,$noise_x), rand(5,$noise_y), 
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y),
		   rand(5,$noise_x), rand(5,$noise_y)
		   );
		   
		$randomcolor = imagecolorallocate( $this->img["src"], rand(150,255), rand(150,255),rand(150,255) );
		imagefilledpolygon($this->img["src"], $polyCoords, 6, $randomcolor);
	}

	// write the random chars
	$font = imageloadfont($glob['rootDir']."/classes/fonts/anonymous.gdf");
	imagestring($this->img["src"], $font, 3, 0, $rand, $textColor);

	// Add Random noise
   for ($i = 0; $i < 25; $i++)
   {
   
	 $rx1 = rand(0,$this->img["width"]);
	 $rx2 = rand(0,$this->img["width"]);
	 $ry1 = rand(0,$this->img["height"]);
	 $ry2 = rand(0,$this->img["height"]);
	 $rcVal = rand(0,255);
	 $rc1 = imagecolorallocate($this->img["src"],rand(0,255),rand(0,255),rand(100,255));

	 imageline ($this->img["src"], $rx1, $ry1, $rx2, $ry2, $rc1);
   }


	$this->show(1);

}

function show($skip=0)
{
	global $config;

	@header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT");
   	@header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
   	@header("Cache-Control: no-store, no-cache, must-revalidate");
   	@header("Cache-Control: post-check=0, pre-check=0", false);
   	@header("Pragma: no-cache");
	@header("Content-Type: image/".$this->img["format"]);

	if($skip==1)
	{

		$this->img["des"] = $this->img["src"];

	}
	elseif ($config['gdversion']==2)
	{
		$this->img["des"] = imagecreatetruecolor($this->img["width_thumb"],$this->img["height_thumb"]);
		@imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["width_thumb"],$this->img["height_thumb"], $this->img["width"], $this->img["height"]);
    		    
	}
	elseif ($config['gdversion']==1)
	{    
		$this->img["des"] = imagecreate($this->img["width_thumb"],$this->img["height_thumb"]);
		@imagecopyresized ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["width_thumb"],$this->img["height_thumb"], $this->img["width"], $this->img["height"]);    
	}


	if ($config['gdversion']>0)
	{

		// fix for base restriction error
		/*
		$fh = fopen($this->img["des"],'w');
		fclose($fh);
		*/

		if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG")
		{
			//JPEG
			imagejpeg($this->img["des"],"",$this->img["quality"]);

		} 
		elseif($this->img["format"]=="PNG")
		{
			//PNG
			imagepng($this->img["des"]);

		}
		elseif($this->img["format"]=="GIF")
		{
			//GIF
			imagegif($this->img["des"]);
		}

		imagedestroy($this->img["des"]);

	}

}

function save($save="")
{
	global $config;

	if ($config['gdversion']==2)
	{
		$this->img["des"] = imagecreatetruecolor($this->img["width_thumb"],$this->img["height_thumb"]);
		@imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["width_thumb"], $this->img["height_thumb"], $this->img["width"], $this->img["height"]);

	} 
	elseif ($config['gdversion']==1)
	{

		$this->img["des"] = imagecreate($this->img["width_thumb"],$this->img["height_thumb"]);
		@imagecopyresized ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["width_thumb"], $this->img["height_thumb"], $this->img["width"], $this->img["height"]);
	}

	if ($config['gdversion']>0)
	{

		// fix for base restriction error
		/*
		$fh = fopen($this->img["des"],'w');
		fclose($fh);
		*/

		if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG")
		{
			//JPEG
			imagejpeg($this->img["des"],$save,$this->img["quality"]);

		}
		elseif ($this->img["format"]=="PNG")
		{
			//PNG
			imagepng($this->img["des"],$save);

		}
		elseif ($this->img["format"]=="GIF")
		{
			//GIF
			imagegif($this->img["des"],$save);

		}
		imagedestroy($this->img["des"]);
		@chmod($this->img["des"], 0644);

	}

}

}
?>

and the code from the .php file

	if(is_array($_FILES['imageName'])){
	$date_str=date('Ymdhis');
	$imageFormat = strtoupper(ereg_replace(".*\.(.*)$","\\1",$_FILES['imageName']['name']));
if($imageFormat == "JPG" || $imageFormat == "JPEG" || $imageFormat == "PNG" || ($imageFormat == "GIF" && $config['gdGifSupport']==1)){
	copy($_FILES['imageName']['tmp_name'],"images/uploads/".$date_str."_".str_replace('-','_',str_replace(' ','_',$_FILES['imageName']['name'])));
		$record["image"] = $db->mySQLSafe($date_str."_".$_FILES['imageName']['name']);
	copy($_FILES['imageName']['tmp_name'],"images/uploads/thumbs/thumb_".$date_str."_".str_replace('-','_',str_replace(' ','_',$_FILES['imageName']['name'])));
	if(file_exists($GLOBALS['rootDir']."/images/uploads/thumbs/thumb_".$_FILES['imageName']['name'])){
		@chmod($GLOBALS['rootDir']."/images/uploads/thumbs/thumb_".$_FILES['imageName']['name'], 0775);
		unlink($GLOBALS['rootDir']."/images/uploads/thumbs/thumb_".$_FILES['imageName']['name']);
	}

	$thumb=new thumbnail("images/uploads/".$date_str."_".$_FILES['imageName']['name']);
	// see if we need to resize 
	if(($size[0] > $config['gdthumbSize']) OR ($size[1] > $config['gdthumbSize'])){
		$thumb->size_auto($config['gdthumbSize']);
	} else {
		$thumb->size_auto($size[0]);
	}
	$thumb->jpeg_quality($config['gdquality']);
	$thumb->save("images/uploads/thumbs/thumb_".$date_str.$_FILES['imageName']['name']);
	}
}

It looks to me that img["width_thumb"], and the other parameters passed to imagecreatetruecolor(), may not have been initialized. They are only set in a function so you have to make sure those size functions are executed before the save function.

hey man im a n00b with php how would i do that?

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.