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
https://forums.phpfreaks.com/topic/231616-uploaded-images-thumbnail-sizes/
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.