|
Serverske aplikacije i baze podataka PHP, Perl, ASP, ASP .NET, ColdFusion... MySQL, PostgreSQL, MSQL, Oracle... |
|
Alatke vezane za temu | Vrste prikaza |
2.1.2011, 18:21 | #1 |
Član
Član od: 4.4.2008.
Lokacija: Kragujevac
Poruke: 233
Zahvalnice: 8
Zahvaljeno 3 puta na 3 poruka
|
Upload, resize, rename image pomocu PHP
Zamisao mi je da se na stranici galerija na sajtu u jednoj listi izlistaju male slicice a da klikom na sliku se pokaze veca slika. Skinuo sam jednu skripticu pomocu koje pravim resize slika koje upload-ujem na sajt. Sad bih hteo da je jos malo prepravim i da pomocu nje pravim i thumbnail-ove. Znaci hteo bih ako je moguce da upload-ujem jednu sliku, a da mi automatski ta slika promeni velicinu,tj. da dobije rezoluciju koju ja zelim, i da se napravi i njena kopija sa jos manjom rezolucijom koju bi ja odredio i da ime te male slicice dobije prefiks thumb_ . Skripta je sledeca:
if ((isset($_POST["submitted_form"])) && ($_POST["submitted_form"] == "image_upload_form")) { // file needs to be jpg,gif,bmp,x-png and 6 MB max if (($_FILES["slika1"]["type"] == "image/jpeg" || $_FILES["slika1"]["type"] == "image/pjpeg" || $_FILES["slika1"]["type"] == "image/gif" || $_FILES["slika1"]["type"] == "image/x-png") && ($_FILES["slika1"]["size"] < 6000000)) { // some settings $max_upload_width = 4256; $max_upload_height = 2832; // if user chosed properly then scale down the image according to user preferances if(isset($_REQUEST['max_width_box']) and $_REQUEST['max_width_box']!='' and $_REQUEST['max_width_box']<=$max_upload_width){ $max_upload_width = $_REQUEST['max_width_box']; } if(isset($_REQUEST['max_height_box']) and $_REQUEST['max_height_box']!='' and $_REQUEST['max_height_box']<=$max_upload_height){ $max_upload_height = $_REQUEST['max_height_box']; } // if uploaded image was JPG/JPEG if($_FILES["slika1"]["type"] == "image/jpeg" || $_FILES["slika1"]["type"] == "image/pjpeg"){ $image_source = imagecreatefromjpeg($_FILES["slika1"]["tmp_name"]); } // if uploaded image was GIF if($_FILES["slika1"]["type"] == "image/gif"){ $image_source = imagecreatefromgif($_FILES["slika1"]["tmp_name"]); } // BMP doesn't seem to be supported so remove it form above image type test (reject bmps) // if uploaded image was BMP if($_FILES["slika1"]["type"] == "image/bmp"){ $image_source = imagecreatefromwbmp($_FILES["slika1"]["tmp_name"]); } // if uploaded image was PNG if($_FILES["slika1"]["type"] == "image/x-png"){ $image_source = imagecreatefrompng($_FILES["slika1"]["tmp_name"]); } // lokacija slika $remote_file = "images/".$_FILES["slika1"]["name"]; imagejpeg($image_source,$remote_file,100); chmod($remote_file,0644); // get width and height of original image list($image_width, $image_height) = getimagesize($remote_file); if($image_width>$max_upload_width || $image_height >$max_upload_height){ $proportions = $image_width/$image_height; if($image_width>$image_height){ $new_width = $max_upload_width; $new_height = round($max_upload_width/$proportions); } else{ $new_height = $max_upload_height; $new_width = round($max_upload_height*$proportions); } $new_image = imagecreatetruecolor($new_width , $new_height); $image_source = imagecreatefromjpeg($remote_file); imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height); imagejpeg($new_image,$remote_file,100); imagedestroy($new_image); } imagedestroy($image_source); } } Pomocu nje dobijem rezoluciju slike koju zelim, e sad kako da mi napravi i kopiju slike sa nekom drugom rezolucijom i da doda imenu slike "thumb_" ? |
3.1.2011, 20:10 | #3 |
Član
Član od: 4.4.2008.
Lokacija: Kragujevac
Poruke: 233
Zahvalnice: 8
Zahvaljeno 3 puta na 3 poruka
|
Re: Upload, resize, rename image pomocu PHP
Resenje problema
<?php // if an image is uploaded if(isset($_POST['submit'])) { // the thumbnail height $size = 150; $brand = 600; // the directory where the original uploaded image is saved $filedir = 'images/'; // the directory where the thumbnail image is saved $thumbdir = 'images2/'; // the prefix to be added to the original name to name the thumbnail $prefix = 'thumb_'; // the file settings for the uploaded image $mode = '0666'; $userfile_name = $_FILES['image']['name']; $userfile_tmp = $_FILES['image']['tmp_name']; $userfile_size = $_FILES['image']['size']; $userfile_type = $_FILES['image']['type']; if(isset($_FILES['image']['name'])) { $prod_img = $filedir.$userfile_name; move_uploaded_file($userfile_tmp, $prod_img); chmod($prod_img, octdec($mode)); $sizes = getimagesize($prod_img); $aspect_ratio = $sizes[1]/$sizes[0]; if ($sizes[1] <= $brand) { $new_w = $sizes[0]; $new_h = $sizes[1]; }else{ $new_h = $brand; $new_w = abs($new_h/$aspect_ratio); } $destimg=imagecreatetruecolor($new_w,$new_h) or die('Problem In Creating image'); $srcimg=imagecreatefromjpeg($prod_img) or die('Problem In opening Source Image'); imagecopyresized($destimg,$srcimg,0,0,0,0,$new_w,$ new_h,imagesx($srcimg),imagesy($srcimg)) or die('Problem In resizing'); imagejpeg($destimg,$prod_img,90) or die('Problem In saving'); imagedestroy($destimg); $prod_img_thumb = $thumbdir.$prefix.$userfile_name; move_uploaded_file($userfile_tmp, $prod_img); chmod($prod_img, octdec($mode)); $sizes = getimagesize($prod_img); $aspect_ratio = $sizes[1]/$sizes[0]; if ($sizes[1] <= $size) { $new_w = $sizes[0]; $new_h = $sizes[1]; }else{ $new_h = $size; $new_w = abs($new_h/$aspect_ratio); } $destimg=imagecreatetruecolor($new_w,$new_h) or die('Problem In Creating image'); $srcimg=imagecreatefromjpeg($prod_img) or die('Problem In opening Source Image'); imagecopyresized($destimg,$srcimg,0,0,0,0,$new_w,$ new_h,imagesx($srcimg),imagesy($srcimg)) or die('Problem In resizing'); imagejpeg($destimg,$prod_img_thumb,90) or die('Problem In saving'); imagedestroy($destimg); } echo ' <a href="'.$prod_img.'"> <img src="'.$prod_img_thumb.'" width="'.$new_w.'" heigt="'.$new_h.'" alt="" /> </a>'; // show an upload form to upload and resize an image }else{ echo ' <form method="post" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit" name="submit" value="upload and resize image" /> </form>'; } ?> |
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Upload image PHP i Mysql | nepoverljiv | Serverske aplikacije i baze podataka | 3 | 28.1.2010 11:16 |
Zip fajl upload i estrakt php skripta | mrakodol | Serverske aplikacije i baze podataka | 2 | 2.7.2009 8:41 |