Галерия Оразмеряване!!!!

kristiqn2

Registered
Здравейте,
Копирах една галерийна система от тук но искам като излизат снимките да ги оразмеря да са в един и същи формат защото в момента излизат от рамката.
Ето го и кода:
Код:
<!doctype html public "-//w3c//dtd html 4.01 transitional//en"> 
 <html> 
 <head> 
 <meta http-equiv="content-language" content="en-us"> 
 <meta http-equiv="content-type" content="text/html; charset=windows-1251"> 
 <title>Maaking.Com File Uploader</title> 
 <link rel="stylesheet" href="style.css" type="text/css"> 
 </head> 
 <script language="JavaScript" type="text/javascript"> 
 <!-- ; 
 var newwindow; 
 var wheight = 0, wwidth = 0; 
 function popimg(url, title, iwidth, iheight, colour) { 
 var pwidth, pheight; 

 if ( !newwindow || newwindow.closed ) { 
 pwidth=iwidth+30; 
 pheight=iheight+30; 
 newwindow=window.open('','htmlname','width=' + pwidth +',height=' +pheight + ',resizable=1,top=50,left=10'); 
 wheight=iheight; 
 wwidth=iwidth; 
 } 

 if (wheight!=iheight || wwidth!=iwidth ) { 
 pwidth=iwidth+30; 
 pheight=iheight+60; 
 newwindow.resizeTo(pwidth, pheight); 
 wheight=iheight; 
 wwidth=iwidth; 
 } 

 newwindow.document.clear(); 
 newwindow.focus(); 
 newwindow.document.writeln('<html> <head> <title>' + title + '<\/title> <\/head> <body bgcolor= \"' + colour + '\"> <center>'); 
 newwindow.document.writeln('<a title="Hit to close!" href="javascript:window.close();"><img src=' + url + ' border=0></a>'); 
 newwindow.document.writeln('<\/center> <\/body> <\/html>'); 
 newwindow.document.close(); 
 newwindow.focus(); 
 } 

 // Routines to tidy up popup windows when page is left 
 // Call with an onUnload="tidy5()" in body tag 

 function tidy5() { 
 if (newwindow && !newwindow.closed) { newwindow.close(); } 
 } 

 </script> 

 <body bgcolor="#ECF5FF" text="#3399FF" leftmargin="20" topmargin="10" marginwidth="10" marginheight="10"> 

 <?php 
 /*=========================================\ 
 Author : Mohammed Ahmed(M@@king) \\ 
 Version : 1.1 \\ 
 Date Created: Oct 11 2004 \\ 
 ---------------------------- \\ 
 Last Update: August 21 2005 \\ 
 ---------------------------- \\ 
 Country : Palestine \\ 
 City : Gaza \\ 
 E-mail : m@maaking.com \\ 
 MSN : m@maaking.com \\ 
 AOL-IM : maa2pal \\ 
 WWW : http://www.maaking.com \\ 
 Mobile/SMS : 00972-599-622235 \\ 
 \\ 
 ===========================================\ 
 ---Description ----------------------------------------------------- 
 The Super Global Variable $_FILES is used in PHP 4.x.x. 
 $_FILES['filetoupload']['size'] ==> Get the Size of the File in Bytes. 
 $_FILES['filetoupload']['tmp_name'] ==> Returns the Temporary Name of the File. 
 $_FILES['filetoupload']['name'] ==> Returns the Actual Name of the File. 
 $_FILES['filetoupload']['type'] ==> Returns the Type of the File. 

 So if I uploaded the file 'test.doc', the $_FILES['filetoupload']['name'] 
 would be 'phptut.doc' and $_FILES['filetoupload']['type'] would be 'application/msword'. 
 ---------------------------------------------------------------------*/ 

 //**********************************************************************// 
 // $_FILES['filetoupload'] is the value of // 
 // file field from the form. <input type="file" name="filetoupload"> // 
 //**********************************************************************// 
 ################################################################################ 
 ##---------------------------1 - Setup 
 ################################################################################ 
 // this is the upload dir where files will go. 
 //Don't remove the / 
 //Chmod it (777) 
 $upload_dir = "images/"; //change to whatever you want. 
 //51200 bytes = 50KB 
 $size_bytes = 51200000000; //File Size in bytes (change this value to fit your need) 
 $extlimit = "yes"; //Do you want to limit the extensions of files uploaded (yes/no) 
 $limitedext = array(".gif",".jpg",".png",".jpeg"); //Extensions you want files uploaded limited to. also you can use: //array(".gif",".jpg",".jpeg",".png",".txt",".nfo",".doc",".rtf",".htm",".dmg",".zip",".rar",".gz",".exe"); 
 ################################################################################ 
 ##---------------------------2 - check for directory and writable 
 ################################################################################ 
 //check if the directory exists or not. 
 if (!is_dir("$upload_dir")) { 
 die ("Error: The directory <b>($upload_dir)</b> doesn't exist"); 
 } 
 //check if the directory is writable. 
 if (!is_writeable("$upload_dir")){ 
 die ("Error: The directory <b>($upload_dir)</b> is NOT writable, Please CHMOD (777)"); 
 } 

 ################################################################################ 
 ##---------------------------3-1 - code begins here 
 ################################################################################ 
 if(isset($_POST['uploadform'])){ 
 // if you clicked the (Upload File) button. "If you submitted the form" then upload the file. 
 //begin of uploadform. 

 // $filename will hold the value of the file name submetted from the form. 
 $file_tmp = $_FILES['filetoupload']['tmp_name']; 
 $file_name = $_FILES['filetoupload']['name']; 
 //Get the Size of the File 
 $file_size = $_FILES['filetoupload']['size']; 

 //check if no file selected. 
 if (!is_uploaded_file($file_tmp)){ 
 echo "Error: Please select a file to upload!. <br>»<a href=\"$_SERVER[PHP_SELF]\">back</a>"; 
 exit(); //exit the script and don't do anything else. 
 } 


 //Make sure that file size is correct 
 if ($file_size > $size_bytes){ 
 echo "Error: File Too Large. File must be <b>". $size_bytes / 1024 ."</b> MB. <br>»<a href=\"$_SERVER[PHP_SELF]\">back</a>"; 
 exit(); 
 } 
 //check file extension 
 $ext = strrchr($file_name,'.'); 
 if (($extlimit == "yes") && (!in_array(strtolower($ext),$limitedext))) { 
 echo("Error: Wrong file extension. "); 
 exit(); 
 } 


 // Check if file is Already EXISTS. 
 if(file_exists($upload_dir.$file_name)){ 
 echo "Oops! The file named <b>$file_name</b> already exists. <br>»<a href=\"$_SERVER[PHP_SELF]\">back</a>"; 
 exit(); 
 } 

 //to remove spaces from file name we have to replace it with "_". 
 $file_name = str_replace(' ', '_', $file_name); 
 //Move the File to the Directory of your choice 
 //move_uploaded_file('filename','destination') Moves afile to a new location. 
 if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) { 
 //tell the user that the file has been uploaded and make him alink. 
 echo "File (<a href=\"$upload_dir$file_name\">$file_name</a>) uploaded! <br>»<a href=\"$_SERVER[PHP_SELF]\">back</a>"; 
 exit(); 
 }else{ 
 // print error if there was a problem moving file. 
 echo "There was a problem moving your file. <br>»<a href=\"$_SERVER[PHP_SELF]\">back</a>"; 
 exit(); 
 } 

 ################################################################################ 
 ##---------------------------3-2 - code to display the form 
 ################################################################################ 
 //end of if($uploadform). 
 // If the form has not been submitted, display it! 
 }else{ 
 //begin of else 

 // get the all extensions from the array 
 for($i=0;$i<count($limitedext);$i++){ 
 if (($i<>count($limitedext)-1))$commas=", ";else $commas=""; 
 list($key,$value)=each($limitedext); 
 $all_ext .= $value.$commas; 
 } 

 //print the form 
 echo "<br><h3>::Избери файл за качване:</h3>" 
 ."- Позволени формати: $all_ext</b> <br>" 
 ."- Максимум размер на снимката = ". $size_bytes / 1024 ."GB" 
 ."<form method=\"post\" enctype=\"multipart/form-data\" action=\"$PHP_SELF\">" 
 ."<input type=\"file\" name=\"filetoupload\"><br>" 
 ."<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$size_bytes\"><br>" 
 ."<input type=\"Submit\" name=\"uploadform\" value=\"Upload File\">" 
 ."</form>"; 
 }//end of else 

 ################################################################################ 
 ##---------------------Function to delete files ------------------------------## 
 ################################################################################ 
 function del(){ 
 // if we want to insert a value inside any function we have to global it first. 
 global $upload_dir, $file; 

 //delete the file 
 @unlink($upload_dir."/$file"); 
 echo"<h3><font color=red>The File ($file) was deleted! <br> Please wait...</font></h3>"; 
 echo "<meta http-equiv=Refresh content=1;url=index.php>"; 
 } 

 //define variable to switch between functions 
 if ( $action == del ){ 
 del(); 
 } 

 // Here is the most interesting part. 
 ################################################################################ 
 ##---------------------------------Added Option ------------------------------## 
 ################################################################################ 
 ################################################################################ 
 ##---------------------View uploaded files (photo gallery) -------------------## 
 ################################################################################ 


 echo "<br><hr><center><b>Current Uploaded Files (Gallery)</b></center><br>"; 

 // set number of columns for the Gallery. 
 $cols = 3; 
 // set aloop for defining columns. 
 $i =1; 
 // creating table inorder to use it for columns. 
 echo "<table width=100% border ='1' bordercolor='#3399FF' cellpadding='10' cellspacing='6'> 
 <tr>"; 

 //open the dir where files were uploaded inside. 
 $opendir =opendir($upload_dir); 
 // create a loop and define a variable called ($file) 
 // to hold the value of file name located in the directory . 
 while ($file = readdir($opendir)) { 
 //exclude anything that doen't look like files. 
 if($file != '..' && $file !='.' && $file !=''){ 
 //dont't read direcories insde our directory. 
 if (!is_dir($file)){ 

 // since i am using gallery we have to get the width and hieght of photos. 
 $imgsize = getimagesize ($upload_dir."".$file); 

 // lets get the file size in byte/kb/mb. 
 $file_size = filesize($upload_dir."".$file); 

 if ($file_size >= 1048576){ 
 $show_filesize = number_format(($file_size / 1048576),2) . " MB"; 
 }elseif ($file_size >= 1024){ 
 $show_filesize = number_format(($file_size / 1024),2) . " KB"; 
 }elseif ($file_size >= 0){ 
 $show_filesize = $file_size . " bytes"; 
 }else{ 
 $show_filesize = "0 bytes"; 
 } 

 //Gets file modification time 
 $last_modified = date ("F d Y H:i:s", filemtime($upload_dir."".$file)); 

 //for images width. 
 if ($imgsize[0] > 100){ 
 $base_img = "<img src=\"$upload_dir$file\" border=\"0\" width=\"100\">"; 
 }else{ 
 $base_img = "<img src=\"$upload_dir$file\" border=\"0\">"; 
 } 
 //define a variable to hold everthing that will be printed in table's columns. 
 $all_stuff = "File name:<b> $file</b> <hr size=1> 
 <div style=\"width: 120px; height: 120px; z-index: 1; float: left; border: 1px dotted #C0C0C0\"> 
 <a href=\"javascript:popimg('$upload_dir$file','$file', $imgsize[0], $imgsize[1],'white')\"> 
 $base_img</a> 
 </div> 
 <p align=left> 
 Size: $show_filesize<br> 
 Options: [<a title=\"Delete File\" href=\"javascript:;\" onClick=\"cf=confirm('Are you sure you want to delete?');if (cf)window.location='index.php?action=del&file=$file'; return false;\">Del</a>] 
 <br>Width : $imgsize[0] px 
 <br>Height : $imgsize[1] px 
 <br>Date added: $last_modified GMT"; 


 //divide the loop ($i) and ($cols) if the result is integer 
 //then print column number 1. 
 if (is_int($i / $cols)){ 
 echo "<td align='center' valign='top' bgcolor='#F2F2F2'>$all_stuff</td></tr><tr>"; 
 }else{ 
 //else then print column number 2 etc for the next loop. 
 echo "<td align='center' valign='top' bgcolor='#F2F2F2'>$all_stuff</td>"; 
 } 
 //add only 1 for the loop ($i). 
 $i++; 
 } 
 } 
 }//end while loop 
 closedir($opendir); 
 clearstatcache(); 
 // print the rest of table. 
 echo "</tr> 
 </table>"; 

 //print copyright ;) 
 echo"<p align=\"right\"><br>Script by: <a href=\"http://www.maaking.com\">maaking.com</a></p> 
 </body> 
 </html>";
 
Разгледай уроците тук за thumbnail-и , все ще си харесаш някой.
Лично мене ако питаш , поиграй си с този код и се опитай да си го нагодиш.

Другия вариант е да си свалиш този class http://web-tourist.net/userfiles/1/1280.rar писан е от @StormBreaker и да го използваш него.

Примерен код:
PHP:
<?php
require_once 'classes/image.php';
$img = new Image(...Пътя към картинката...);
if ( $img->IsValidImage() ) {
// картинката е валидна
// Оразмерява я до максимално зададените размери, като запазва пропорциите. Параметрите са ширина, височина и дали да запази снимката, ако е с по-малки от зададените размери.
    $img->ReiszeProportional(1024, 768, true);
   
    // Записва картинката под име test.jpg и формат JPG. Има и трети параметър - качество.
    $img->Save('test.jpg', IMAGETYPE_JPEG);
}
else // невалидна картинка
    echo 'invalid image';
?>

Други функции са:
$img->Resize($width, $height) - оразмерява до дадените размери, но не се интересува от запазване на пропорциите.
$img->Scale($times) - свива или уголемява снимката с $times пъти.
$img->Show() - показва снимката, без да я записва.

Успех! :)
 

Back
Горе