Use the following class to generate a picture thumbnail, Class Resizeimage { Type of picture var $type; Actual width var $width; Actual height var $height; The width after the change var $resize _width; The height after the change var $resize _height; Whether or not to cut the map var $cut; Source image var $srcimg; Destination image Address var $dstimg; Temporarily created images var $im; function Resizeimage ($img, $wid, $hei, $c, $dstpath) { $this->srcimg = $img; $this->resize_width = $wid; $this->resize_height = $hei; $this->cut = $c; Type of picture $this->type = Strtolower (substr (STRRCHR ($this->srcimg, "."), 1); Initializing an image $this->initi_img (); Destination image Address $this-Dst_img ($dstpath); //-- $this->width = imagesx ($this->im); $this->height = Imagesy ($this->im); Creating images $this->newimg (); Imagedestroy ($this->im); } function newimg () { The proportions of the altered image $resize _ratio = ($this->resize_width)/($this->resize_height); Ratio of actual images $ratio = ($this->width)/($this->height); if (($this->cut) = = "1") Crop chart { if ($ratio >= $resize _ratio) High priority { $newimg = Imagecreatetruecolor ($this->resize_width, $this->resize_height); Imagecopyresampled ($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, (($this Height) * $resize _ratio), $this->height); Imagejpeg ($newimg, $this->dstimg); } if ($ratio < $resize _ratio) Width first { $newimg = Imagecreatetruecolor ($this->resize_width, $this->resize_height); Imagecopyresampled ($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width , (($this->width)/$resize _ratio)); Imagejpeg ($newimg, $this->dstimg); } } Else Do not cut the map { if ($ratio >= $resize _ratio) { $newimg = Imagecreatetruecolor ($this->resize_width, ($this->resize_width)/$ratio); Imagecopyresampled ($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this- >width, $this->height); Imagejpeg ($newimg, $this->dstimg); } if ($ratio < $resize _ratio) { $newimg = Imagecreatetruecolor (($this->resize_height) * $ratio, $this->resize_height); Imagecopyresampled ($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height) * $ratio, $this->resize_height, $ This->width, $this->height); Imagejpeg ($newimg, $this->dstimg); } } } Initializing an image function initi_img () { if ($this->type== "jpg") { $this->im = imagecreatefromjpeg ($this->srcimg); } if ($this->type== "gif") { $this->im = imagecreatefromgif ($this->srcimg); } if ($this->type== "PNG") { $this->im = imagecreatefrompng ($this->srcimg); } } Image Destination Address function Dst_img ($dstpath) { $full _length = strlen ($this->srcimg); $type _length = strlen ($this->type); $name _length = $full _length-$type _length; $name = substr ($this->srcimg,0, $name _length-1); $this->dstimg = $dstpath; Echo $this->dstimg; } } |