/* * Desc:resize Image (PNG, JPG, GIF) * Author: Ten years later, brother Lou * date:2014.11.13 */ Class Resizeimage { Type of picture Private $type; Actual width Private $width; Actual height Private $height; The width after the change Private $resize _width; The height after the change Private $resize _height; Whether or not to cut the map Private $cut; Source image Private $srcimg; Destination image Address Private $dstimg; Temporarily created images Private $im; function __construct ($imgPath, $width, $height, $isCut, $savePath) { $this->srcimg = $imgPath; $this->resize_width = $width; $this->resize_height = $height; $this->cut = $isCut; Type of picture $this->type = Strtolower (substr (STRRCHR ($this->srcimg, "."), 1); Initializing an image $this->initi_img (); Destination image Address $this-Dst_img ($savePath); //-- $this->width = imagesx ($this->im); $this->height = Imagesy ($this->im); Creating images $this->newimg (); Imagedestroy ($this->im); } Private 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) { Crop chart $newimg = Imagecreatetruecolor ($this->resize_width, $this->resize_height); if ($this->type== "png") { Imagefill ($newimg, 0, 0, Imagecolorallocatealpha ($newimg, 0, 0, 0, 127)); } if ($ratio >= $resize _ratio) { High priority Imagecopyresampled ($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, (($this Height) * $resize _ratio), $this->height); } else { Width first Imagecopyresampled ($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width , (($this->width)/$resize _ratio)); } } else { Do not cut the map if ($ratio >= $resize _ratio) { $newimg = Imagecreatetruecolor ($this->resize_width, ($this->resize_width)/$ratio); if ($this->type== "png") { Imagefill ($newimg, 0, 0, Imagecolorallocatealpha ($newimg, 0, 0, 0, 127)); } Imagecopyresampled ($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this- >width, $this->height); } else { $newimg = Imagecreatetruecolor (($this->resize_height) * $ratio, $this->resize_height); if ($this->type== "png") { Imagefill ($newimg, 0, 0, Imagecolorallocatealpha ($newimg, 0, 0, 0, 127)); } Imagecopyresampled ($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height) * $ratio, $this->resize_height, $ This->width, $this->height); } } if ($this->type== "png") { Imagesavealpha ($newimg, true); Imagepng ($newimg, $this->dstimg); } else { Imagejpeg ($newimg, $this->dstimg); } } Initializing an image Private 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 Private 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; } } ?> |