SitePoint Sponsor

User Tag List

Results 1 to 18 of 18

Threaded View

  1. #1
    SitePoint Zealot
    Join Date
    Mar 2008
    Posts
    110
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    problem with bmp and png resizing php

    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
    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
    Down is the Script check it for me please.
    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 ";
    Last edited by mrcniceguy; Aug 3, 2009 at 10:04. Reason: ..


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •