Jump to content

Uploaded images - Thumbnail sizes?


ttmt

Recommended Posts

Upload images - Thumbnail sizes?

 

Hi all

 

I haven't used php for a while now and I'm really stuck on some code I wrote and now I can't work how to change it.

 

I have this function to upload images and create thumbnails. The thumbnails can be either landscape or portrait and I want them to have the same height. At the moment the portrait thumbnails height is equal to the landscape thumbnail width. The dimensions of the thumbnails are the same but the portrait images are portrait.

 

How can I size the thumbnails so they all have the same height. 

 

Thanks in advance for any help or advice on this.

 

function upload_images(){
$photo_types = array('image/pjpeg'=>'.jpeg','image/jpeg'=>'.jpg','image/gif'=>'.gif','image/.bmp'=>'bmp','image/x-png'=>'.png');
//$number_of_uploads = 5;
$image_Dir = "images_1/";
$image_thumb_Dir = $image_Dir . "thumbs/";
$photo_id_arr = array();
$photo_ext_arr = array();
$photo_id_ext_arr = array();
//
if(isset($_FILES['images'])){
	$image_uploaded = $_FILES['images'];
	for($i=0; $i<=count($_FILES['images']['name']);$i++){
		if(!empty($image_uploaded['name'][$i])){
			if(array_key_exists($image_uploaded['type'][$i], $photo_types)){
				$file_temp = mysql_prep($image_uploaded['name'][$i]);
				//
				$query = "INSERT INTO photos (filename) VALUES ('{$file_temp}')";
				$result = mysql_query($query);
				confirm_query($result);
				if($result){
					$photo_id = mysql_insert_id();
					array_push($photo_id_arr, $photo_id);
				}
				//
				$filetype = $image_uploaded['type'][$i];
				$ext = $photo_types[$filetype];
				array_push($photo_ext_arr, $ext);
				$dbfile_name = $photo_id . $ext;
				//
				$query = "UPDATE photos SET filename = '{$dbfile_name}' WHERE photo_id = '{$photo_id}'";
				$result = mysql_query($query);
				confirm_query($result);
				//
				//
				$stored_image = $image_Dir . $dbfile_name;
				$stored_thumb = $image_thumb_Dir . $dbfile_name;
				move_uploaded_file($image_uploaded['tmp_name'][$i], $stored_image );
				//
				$src_image = imagecreatefromjpeg($stored_image);
				//
				$src_width = imagesx($src_image);
				$src_height = imagesy($src_image);
				$new_width = 900;
				$new_height = 900; 
				//
				if($src_width > $src_height){
					$img_w = $new_width;
					$img_h = $src_height*($new_height/$src_width); 
				}
				if($src_width < $src_height){
					$img_w = $src_width*($new_width/$src_height);
					$img_h = $new_height;
				}
				if($src_width == $src_height){
					$img_w = $new_width;
					$img_h = $new_height;
				}
				//
				$mainImg = imagecreatetruecolor($img_w, $img_h);
				imagecopyresampled($mainImg, $src_image,0,0,0,0,$img_w, $img_h, $src_width, $src_height);
				imagejpeg($mainImg, $stored_image, 100);
				imagedestroy($src_image);
				imagedestroy($mainImg);
				//***************************
				//
				//
				//
				//***************************
				$src_image = imagecreatefromjpeg($stored_image);
				//
				$src_width = imagesx($src_image);
				$src_height = imagesy($src_image);
				$new_width = 85;
				$new_height = 85; 
				//
				if($src_width > $src_height){
					$thumb_w = $new_width;
					$thumb_h = $src_height*($new_height/$src_width); 
				}
				if($src_width < $src_height){
					$thumb_w = $src_width*($new_width/$src_height);
					$thumb_h = $new_height;
				}
				if($src_width == $src_height){
					$thumb_w = $new_width;
					$thumb_h = $new_height;
				}
				//
				$thumb = imagecreatetruecolor($thumb_w, $thumb_h);
				imagecopyresampled($thumb, $src_image,0,0,0,0,$thumb_w, $thumb_h, $src_width, $src_height);
				imagejpeg($thumb, $stored_thumb, 100);
				imagedestroy($src_image);
				imagedestroy($thumb);
				}else{
					//echo "File format not supported.";
			}
		}
	}
	array_push($photo_id_ext_arr, $photo_id_arr);
	array_push($photo_id_ext_arr, $photo_ext_arr);
	return $photo_id_ext_arr;
}
}

Link to comment
Share on other sites

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.