i got this script,in one of the very old artciles in sitepoint.
everything is ok!except that PNG and BMP imges are not resized.
giving this errors
Down is the Script check it for me please.Code:Warning: imagecreatefromwbmp() [function.imagecreatefromwbmp]: 'thumb/tb_128448486.bmp' is not a valid WBMP file in C:\wamp\www\wallsnap.php on line 97 Warning: imagewbmp(): supplied argument is not a valid Image resource in C:\wamp\www\wallsnap.php on line 105 Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\wamp\www\wallsnap.php on line 106 Warning: imagecreatefromwbmp() [function.imagecreatefromwbmp]: 'thumb/tb_128448486.bmp' is not a valid WBMP file in C:\wamp\www\wallsnap.php on line 139 Warning: imagewbmp(): supplied argument is not a valid Image resource in C:\wamp\www\wallsnap.php on line 148 Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\wamp\www\wallsnap.php on line 149
Code:<?php session_start(); $user=$_SESSION['user']; $id=$_SESSION['id']; //include("configa.inc.php"); // include("design.inc.php"); include("config.php"); $image_dir='thumb'; $image_dir1='thumb'; // initialization $result_final = ""; $counter = 0; // List of our known photo types $known_photo_types = array( 'image/pjpeg' => 'jpg', 'image/jpeg' => 'jpg', 'image/gif' => 'gif', 'image/bmp' => 'bmp', 'image/x-png' => 'png'); // GD Function Suffix List $gd_function_suffix = array( 'image/pjpeg' => 'JPEG', 'image/jpeg' => 'JPEG', 'image/gif' => 'GIF', 'image/bmp' => 'WBMP', 'image/x-png' => 'PNG'); // Fetch the photo array sent by preupload.php $photos_uploaded = $_FILES['photo_filename']; $photoFileName= $_FILES['photo_filename']; // Fetch the photo caption array $photo_caption = $_POST['photo_caption']; while( $counter <= count($photos_uploaded) ) { if($photos_uploaded['size'][$counter] > 0) { if(!array_key_exists($photos_uploaded['type'][$counter], $known_photo_types)) { $result_final .= "Erro!the file is not a photo,or More than 2MB<br />"; }else{ //create a random file name $rand_name = md5(time()); $rand_name= rand(0,999999999); $filetype = $photos_uploaded['type'][$counter]; $extention=$known_photo_types[$filetype]; $filename=$rand_name.".".$extention; @mysql_query( "UPDATE login SET photo='$filename' WHERE user='$user'"); @mysql_query( "UPDATE profile SET photos='$filename' WHERE users='$user'"); // $new_id = mysql_insert_id(); // $filetype = $photos_uploaded['type'][$counter]; //$extention = $known_photo_types[$filetype]; //$filename = $new_id.".".$extention; //@mysql_query( "UPDATE gallery_photos SET photo_filename='".addslashes($filename)."' WHERE photo_id='".addslashes($new_id)."'" ); // Store the orignal file copy($photos_uploaded['tmp_name'][$counter], $image_dir."/tb_".$filename); // Let's get the original image size $size = GetImageSize($image_dir."/tb_".$filename ); // First Create Thumbnail! // Thumbnail Settings $Config_tbwidth_wide = 100; // width of wide image $Config_tbheight_wide = 75; // height of wide image $Config_tbwidth_tall = 75; // width of tall image $Config_tbheight_tall = 100; // height of tall image // The Code if($size[0] > $size[1]){ $thumbnail_width = $Config_tbwidth_wide; $thumbnail_height = (int)($Config_tbwidth_wide * $size[1] / $size[0]); if($thumbnail_height > $Config_tbheight_wide){ $thumbnail_height = $Config_tbheight_wide; $thumbnail_width = (int)($Config_tbheight_wide * $size[0] / $size[1]); } }else{ $thumbnail_width = (int)($Config_tbheight_tall * $size[0] / $size[1]); $thumbnail_height = $Config_tbheight_tall; if($thumbnail_width > $Config_tbwidth_tall){ $thumbnail_width = $Config_tbwidth_tall; $thumbnail_height = (int)($Config_tbwidth_tall * $size[1] / $size[0]); } } // Build Thumbnail with GD 2.x.x, you can use the other described methods too $function_suffix = $gd_function_suffix[$filetype]; $function_to_read = "ImageCreateFrom".$function_suffix; $function_to_write = "Image".$function_suffix; // Read the source file $source_handle = $function_to_read ( $image_dir."/tb_".$filename ); if($source_handle){ // Let's create a blank image for the thumbnail $destination_handle = ImageCreateTrueColor ( $thumbnail_width, $thumbnail_height ); // Now we resize it ImageCopyResampled( $destination_handle, $source_handle, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $size[0], $size[1] ); } // Let's save the thumbnail $function_to_write( $destination_handle, $image_dir."/".$filename ); ImageDestroy($destination_handle ); // ................................................................................. // This is the new code that checks for width and solves our problems // ................................................................................. // Lets resize the image if its width is greater than 500 pixels // Resized image settings if ($size[0] > '80'){ $Config_width_wide = 200; // width of wide image $Config_height_wide = 175; // height of wide image $Config_width_tall = 175; // width of tall image $Config_height_tall = 300; // height of tall image // The Code if($size[0] > $size[1]){ $image_width = $Config_width_wide; $image_height = (int)($Config_width_wide * $size[1] / $size[0]); if($image_height > $Config_height_wide){ $image_height = $Config_height_wide; $image_width = (int)($Config_height_wide * $size[0] / $size[1]); } }else{ $image_width = (int)($Config_height_tall * $size[0] / $size[1]); $image_height = $Config_height_tall; if($image_width > $Config_width_tall){ $image_width = $Config_width_tall; $image_height = (int)($Config_width_tall * $size[1] / $size[0]); } } // Build image with GD 2.x.x, you can use the other described methods too $function_suffix = $gd_function_suffix[$filetype]; $function_to_read = "ImageCreateFrom".$function_suffix; $function_to_write = "Image".$function_suffix; // Read the source file $source_handle = $function_to_read ( $image_dir."/tb_".$filename ); if($source_handle){ // Let's create a blank image for the image $destination_handle = ImageCreateTrueColor ( $image_width, $image_height ); // Now we resize it ImageCopyResampled( $destination_handle, $source_handle, 0, 0, 0, 0, $image_width, $image_height, $size[0], $size[1] ); } // Let's save the image $function_to_write( $destination_handle, $image_dir."/tb_".$filename ); ImageDestroy($destination_handle ); } $result_final .= "<img src='".$image_dir1. "/tb_".$filename."' /><br /><font color=green>Your profile photo was changed</font><br /> <font size=5>To continue <a href=myprofile.php>click here</a></font><br />"; $result_final.=mysql_query("INSERT INTO UPDATES SET photo='$filename',sender_id='$id'"); } } $counter++; } // Print Result echo"$result_final ";







It was more to give you an idea how to do it.
Bookmarks