Jump to content

Resizing image math


graham23s

Recommended Posts

Hi Guys,

 

When i make a thumbnail of the uploaded image (65x65) i get a black space under the image like:

 

http://img175.imageshack.us/img175/5500/thumb1205669160firsctchod1.jpg

 

instead of it making it the whole canvas size, my code for the function is:

 

<?php
function resize_image($upload_directory, $new_image_name)
{
  // original image location //
  $original_image = $upload_directory;
  
  // set up a canvas my babies //
  $canvas_width = 65;
  $canvas_height = 65;
  
  // create the canvas //
  $canvas = imagecreatetruecolor($canvas_width, $canvas_height);
  
  // get the image height and width //
  list($image_width, $image_height) = getimagesize($upload_directory);
  
  // do some math for the scaled image //
  $image_ratio = $image_width / $image_height;
  
  // new sizes //
  if($image_ratio > 1)
  {
  $new_image_width = 65;
  $new_image_height = 65 / $image_ratio; 
  } else {
  $new_image_width = (float)65 * $image_ratio;
  $new_image_height = 65;   
  }
  
  // store original into memory //
  $original_image = imagecreatefromjpeg($original_image);
  
  // copy the original image onto the canvas canvas, original and top/left co-ordinates //
  imagecopyresampled($canvas, $original_image, 0,0,0,0, $new_image_width, $new_image_height, $image_width, $image_height);
  
  // thumbnail name //
  $new_thumbnail_name = "thumb-$new_image_name";
  
  // save the thumbnail in the thumbs folder //
  if(imagejpeg($canvas, "products/thumbnails/$new_thumbnail_name", 100))
  {
   return("$new_thumbnail_name");
  }
  
}
?>

 

i'm not sure if it's my ration that is off can anyone see the problem there?

 

thanks guys

 

Graham

Link to comment
https://forums.phpfreaks.com/topic/96388-resizing-image-math/
Share on other sites

Move this line:

$canvas = imagecreatetruecolor($canvas_width, $canvas_height);

before these lines:

// copy the original image onto the canvas canvas, original and top/left co-ordinates //
imagecopyresampled($canvas, $original_image, 0,0,0,0, $new_image_width, $new_image_height, $image_width, $image_height);

and change $canvas_width and $canvas_height variables to $new_canvas_width and $new_canvas_height respectively.

 

Link to comment
https://forums.phpfreaks.com/topic/96388-resizing-image-math/#findComment-493342
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.