I have this code that I use to upload an original image and then two smaller versions. It works fine.
CODE
-----------------
<?
if (!isset($_POST['action'])) {
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="2500000">
Select an image: <input type="file" name="imgfile" class="button"><br>
<br>
<center><font size="2">
<br>
For best results, use the dimensions (Height = 167px, Width = 200px).<br>
<br>
Please note: Only "jpg" images are currently supported. Files ending in ".jpeg" must be renamed to ".jpg" in order to be uploaded.<br>
<br>
</font>
<br>
<input type="hidden" name="action" value="do_upload">
<input type="submit" value="Submit Image">
</form><br><br>
<?
$result = mysql_query("SELECT * FROM bandinfo WHERE userid = '$ud_id'");
$num = mysql_num_rows($result);
$i = 0;
$pic = mysql_result($result,$i,"pic");
if (!empty($pic)){
?>
<?
} else {
?>
<?
}
?>
<?
} elseif ($_POST['action'] == "do_upload") {
$name = $_FILES['imgfile']['name'];
if ($_FILES['imgfile']['type'] != 'image/jpeg' and $_FILES['imgfile']['type'] != 'image/pjpeg') {
?>
<?
exit;
}
$uploaddir1 = "pics";
$uploaddir2 = "pics";
$uploaddir3 = "pics";
$final_filename1 = $ud_id."_l.jpg";
$final_filename2 = $ud_id."_m.jpg";
$final_filename3 = $ud_id."_s.jpg";
$imgfile = $_FILES['imgfile']['tmp_name'];
if (is_uploaded_file($imgfile)) {
$newfile = $uploaddir1 . "/" . $final_filename1;
copy($imgfile, $newfile);
resize_me ($imgfile, $uploaddir2, $final_filename2, "75");
resize_me ($imgfile, $uploaddir3, $final_filename3, "50");
$query = "UPDATE `bandinfo` SET `pic` = '$ud_id' WHERE `userid` = '$ud_id'";
mysql_query($query) or die('Error, insert query failed');
}
?>
<?
}
function resize_me ($img, $path, $name, $percent) {
//image file path
//the folder to save to
//the name to use when saving
//percent to resize
$orig_image = $img;
$image_stats = GetImageSize($orig_image);
$imagewidth = $image_stats[0];
$imageheight = $image_stats[1];
$img_type = $image_stats[2];
$new_w = $imagewidth * $percent;
$new_w = round($new_w / 100);
$ratio = ($imagewidth / $new_w);
$new_h = round($imageheight / $ratio);
if ($img_type=="2") {
$src_img = imagecreatefromjpeg($orig_image);
$dst_img = imagecreatetruecolor($new_w,$new_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img));
imagejpeg($dst_img, "$path"."/$name");
} elseif ($img_type=="3") {
$dst_img=imagecreatetruecolor($new_w,$new_h);
$src_img=ImageCreateFrompng($orig_image);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
Imagepng($dst_img, "$path"."/$name");
}
}
?>
---------------
Is it possible to modify it so that I first resize the original image to Height = 167px, Width = 200px, save that file as the original and then create the smaller versions?
by: babuno5Posted on 2007-03-26 at 23:49:04ID: 18798221
I think the following code should work as per your requirement
)) {
="") {
image); w,$new_h); g,$src_img ,0,0,0,0,$ new_w,$new _h,imagesx ($src_img) ,imagesy($ src_img)); lor($new_w ,$new_h); g($orig_im age); g,$src_img ,0,0,0,0,$ new_w,$new _h,ImageSX ($src_img) ,ImageSY($ src_img));
if (is_uploaded_file($imgfile
$newfile = $uploaddir1 . "/" . $final_filename1;
// copy($imgfile, $newfile);
resize_me ($imgfile, $uploaddir1, $final_filename1, '',167,200);
resize_me ($newfile, $uploaddir2, $final_filename2, "75");
resize_me ($newfile, $uploaddir3, $final_filename3, "50");
$query = "UPDATE `bandinfo` SET `pic` = '$ud_id' WHERE `userid` = '$ud_id'";
mysql_query($query) or die('Error, insert query failed');
}
function resize_me ($img, $path, $name, $percent,$height="",$width
//image file path
//the folder to save to
//the name to use when saving
//percent to resize
$orig_image = $img;
$image_stats = GetImageSize($orig_image);
$imagewidth = $image_stats[0];
$imageheight = $image_stats[1];
$img_type = $image_stats[2];
if($width == "")
{
$new_w = $imagewidth * $percent;
$new_w = round($new_w / 100);
}
else
$new_w = $width;
if($height == "")
{
$ratio = ($imagewidth / $new_w);
$new_h = round($imageheight / $ratio);
}
else
$new_h = $height;
if ($img_type=="2") {
$src_img = imagecreatefromjpeg($orig_
$dst_img = imagecreatetruecolor($new_
imagecopyresampled($dst_im
imagejpeg($dst_img, "$path"."/$name");
} elseif ($img_type=="3") {
$dst_img=imagecreatetrueco
$src_img=ImageCreateFrompn
imagecopyresampled($dst_im
Imagepng($dst_img, "$path"."/$name");
}
}