Jane Smith;10965732 wrote:You are right it should be $image not $thumbfile.
How does your code fit in with copying and resizing? Sorry I am quite new to this and don't automatically understand what all the code is doing.
Here's the entire function where I was using that code:
/**
* Resize image to specific dimension, cropping as needed
* @return resource Resized image resource, or boolean false on failure
* @param string $imgFile Path to image to be resized
* @param int $width
* @param int $height
* @param string $error Error message
*/
function resize($imgFile, $width, $height, &$error = null)
{
$attrs = @getimagesize($imgFile);
if($attrs == false)
{
$error = "Uploaded file does not appear to be an image.";
return false;
}
if($attrs[0] * $attrs[1] > 3000000)
{
$error = "Max pixels allowed is 3,000,000. Your {$attrs[0]} x " .
"{$attrs[1]} image has " . $attrs[0] * $attrs[1] . " pixels.";
return false;
}
$ratio = (($attrs[0] / $attrs[1]) < ($width / $height)) ?
$width / $attrs[0] : $height / $attrs[1];
$x = max(0, round($attrs[0] / 2 - ($width / 2) / $ratio));
$y = max(0, round($attrs[1] / 2 - ($height / 2) / $ratio));
switch($attrs[2]) {
case IMAGETYPE_JPEG:
$src = @imagecreatefromjpeg($imgFile);
break;
case IMAGETYPE_PNG:
$src = @imagecreatefrompng($imgFile);
break;
case IMAGETYPE_GIF:
$src = @imagecreatefromgif($imgFile);
break;
default:
$error = "File is not a JPEG, PNG, or GIF image";
return false;
}
if($src == false)
{
$error = "An error occurred processing the file, it may have been corrupted.";
return false;
}
$resized = imagecreatetruecolor($width, $height);
$result = imagecopyresampled($resized, $src, 0, 0, $x, $y, $width, $height,
round($width / $ratio, 0), round($height / $ratio));
if($result == false)
{
$error = "Error trying to resize and crop image.";
return false;
}
else
{
return $resized;
}
}
You might need to change the logic for the resizing, but it should give you some idea. Basic usage would be:
$imageResized = resize($_FILES["file"]["tmp_name"], $width, $height, $error);
if($resizedImage == false) {
echo $error; // or whatever you want to do
} else {
fwrite($imageResized,"thumbs/".$ran2ext);
}