Here’s an old image resize script, welcome to grab parts out of it and use as your own. Will need to hack it a bit to get it to work.
<?php
$property_id = 1; // for our little example here
define( "_IMAGE_PATH", "property_images/" );
// max dimensions allowed:
define( "_IMAGE_WIDTH", "640" );
define( "_IMAGE_HEIGHT", "480" );
define( "_IMAGE_THUMB_WIDTH", "100" );
define( "_IMAGE_THUMB_HEIGHT", "75" );
// grab the path to the temporary file (image) that the user uploaded
$photo = $_FILES['new_image']['tmp_name'];
// check if it exists
if ( is_uploaded_file( $photo ) ) {
//the real image file name
$real_name = strtolower( $_FILES['new_image']['name'] );
// image type based on image file name extension:
if ( strstr( $real_name, ".png" ) ) {
$image_type = "png";
} else if ( strstr( $real_name, ".jpg" ) ) {
$image_type = "jpg";
} else if ( strstr( $real_name, ".gif" ) ) {
$image_type = "gif";
} else {
die( "Unsupported image type" );
}
// find the next image name we are going to save
$x = 1;
while ( true ) {
$image_name = _IMAGE_PATH . "${property_id}/${x}.jpg";
if ( ! is_file( $image_name ) ) {
break;
}
$x ++;
}
// start processing the main bigger image:
$max_width = _IMAGE_WIDTH;
$max_height = _IMAGE_HEIGHT;
$size = getimagesize( $photo );
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ( $width <= $max_width ) && ( $height <= $max_height ) ) {
$tn_width = $width;
$tn_height = $height;
} else {
if ( ( $x_ratio * $height ) < $max_height ) {
$tn_height = ceil( $x_ratio * $height );
$tn_width = $max_width;
} else {
$tn_width = ceil( $y_ratio * $width );
$tn_height = $max_height;
}
}
switch ( $image_type ) {
case "png":
$src = imagecreatefrompng( $photo );
break;
case "jpg":
$src = imagecreatefromjpeg( $photo );
break;
case "gif":
$src = imagecreatefromgif( $photo );
break;
}
// destination resized image:
$dst = imagecreatetruecolor( $tn_width, $tn_height );
// resize original image onto $dst
imagecopyresampled( $dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height );
// write the final jpeg image..
imagejpeg( $dst, $image_name, 100 ) or die( "Error: your photo
has not been saved. Please contact the administrator" );
// time to clean up
imagedestroy( $src );
imagedestroy( $dst );
// and now we do it alll again for the thumbnail:
$max_width = _IMAGE_THUMB_WIDTH;
$max_height = _IMAGE_THUMB_HEIGHT;
$size = GetImageSize( $photo );
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ( $width <= $max_width ) && ( $height <= $max_height ) ) {
$tn_width = $width;
$tn_height = $height;
} else {
if ( ( $x_ratio * $height ) < $max_height ) {
$tn_height = ceil( $x_ratio * $height );
$tn_width = $max_width;
} else {
$tn_width = ceil( $y_ratio * $width );
$tn_height = $max_height;
}
}
switch ( $image_type ) {
case "png":
$src = imagecreatefrompng( $photo );
break;
case "jpg":
$src = imagecreatefromjpeg( $photo );
break;
case "gif":
$src = imagecreatefromgif( $photo );
break;
}
$dst = imagecreatetruecolor( $tn_width, $tn_height );
imagecopyresampled( $dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height );
$thumbfile = $image_name . ".thumb.jpg";
if ( file_exists( $thumbfile ) ) {
unlink( $thumbfile );
}
imagejpeg( $dst, $thumbfile, 100 ) or die( "Error: your photo thumb has not been saved. Please contact the administrator" );
imagedestroy( $src );
imagedestroy( $dst );
}