i got this script,in one of the very old artciles in sitepoint.
everything is ok!except that PNG and BMP images are not resized.
giving this errors
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
Down is the Script check it for me please.
<?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";