note 59490 deleted from features.file-upload by felipe

[email protected]
Newsgroups php.notes
Message-ID <[email protected]>
Note Submitter: pete at NOSPAMpetesmithcomputers dot com 

----

I find I often have to handle photos in CMSs, so I wrote this class. It doubtless needs improvements, but it works pretty well.
<?php
class picture
{
        var $save_dir;                     //where file will be saved
        var $filename="spacer.gif";        //default file name initially 
        var $error_message="";             //string to be output if neccesary
        var $width;                        //height of final image
        var $height;                       //width of final image

        function picture($save_directory, $file_array, $max_width, $max_height)
        {
                $this->save_dir = $save_directory;                
                $this->width =    $max_width;
                $this->height =   $max_height;

                //--change filename to time - make it unique
                $temp_filename = $file_array['name'];
                $ext = explode('.',$temp_filename);
                $ext = $ext[count($ext)-1];
                $temp_filename = time().".".$ext;

                //--check that it's a jpeg or gif
                if (preg_match('/^(gif|jpe?g)$/',$ext)) { 
                        // resize in proportion
                        list($width_orig, $height_orig) = getimagesize($file_array['tmp_name']);
                        if ($this->width && ($width_orig < $height_orig)) {
                                $this->width = ($this->height / $height_orig) * $width_orig;
                        } else {
                                $this->height = ($this->width / $width_orig) * $height_orig;
                        }

                        $image_p = imagecreatetruecolor($this->width, $this->height);                        

                        //handle gifs and jpegs separately
                        if($ext=='gif'){
                            $image = imagecreatefromgif($file_array['tmp_name']);                            
                            imagecopyresampled($image_p, $image, 0, 0, 0, 0, $this->width, $this->height, $width_orig, $height_orig);
                            imagegif($image_p, $this->save_dir.$temp_filename, 80);
                        }
                        else
                        {
                            $image = imagecreatefromjpeg($file_array['tmp_name']);                             
                            imagecopyresampled($image_p, $image, 0, 0, 0, 0, $this->width, $this->height, $width_orig, $height_orig);                            
                            imagejpeg($image_p, $this->save_dir.$temp_filename, 80);
                        }

                        imagedestroy($image_p);
                        imagedestroy($image);

                        $this->filename=$temp_filename;

                }else{
                        $this->error_message.="<br> file is not a jpeg or gif picture <br>";
                }
        }
}
?>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.