Bom se você chegou até este tutorial você deve ter visto no minímo umas 10 ou mais opções de redimencionar imagens no PHP com GD correto ? Nesta classe abaixo vou mostrar como criar uma função poderosa e extremamente simples para...

Bom se você chegou até este tutorial você deve ter visto no minímo umas 10 ou mais opções de redimencionar imagens no PHP com GD correto ? Nesta classe abaixo vou mostrar como criar uma função poderosa e extremamente simples para redimencionar imagens na proporção. Source da Classe
// Class to manipulate image // Imaging class imaging { // Variables private $img_input; private $img_output; private $img_src; private $format; private $quality = 80; private $x_input; private $y_input; private $x_output; private $y_output; private $resize; // Set image public function set_img($img) { // Find format $ext = strtoupper(pathinfo($img, PATHINFO_EXTENSION)); // JPEG image if(is_file($img) && ($ext == "JPG" OR $ext == "JPEG")) { $this->format = $ext; $this->img_input = ImageCreateFromJPEG($img); $this->img_src = $img; } // PNG image elseif(is_file($img) && $ext == "PNG") { $this->format = $ext; $this->img_input = ImageCreateFromPNG($img); $this->img_src = $img; } // GIF image elseif(is_file($img) && $ext == "GIF") { $this->format = $ext; $this->img_input = ImageCreateFromGIF($img); $this->img_src = $img; } // Get dimensions $this->x_input = imagesx($this->img_input); $this->y_input = imagesy($this->img_input); } // Set maximum image size (pixels) public function set_size($max_x = 100,$max_y = 100) { // Resize if($this->x_input > $max_x || $this->y_input > $max_y) { $a= $max_x / $max_y; $b= $this->x_input / $this->y_input; if ($ax_output = $max_x; $this->y_output = ($max_x / $this->x_input) * $this->y_input; } else { $this->y_output = $max_y; $this->x_output = ($max_y / $this->y_input) * $this->x_input; } // Ready $this->resize = TRUE; } // Don't resize else { $this->resize = FALSE; } } // Set image quality (JPEG only) public function set_quality($quality) { if(is_int($quality)) { $this->quality = $quality; } } // Save image public function save_img($path) { // Resize if($this->resize) { $this->img_output = ImageCreateTrueColor($this->x_output, $this->y_output); ImageCopyResampled($this->img_output, $this->img_input, 0, 0, 0, 0, $this->x_output, $this->y_output, $this->x_input, $this->y_input); } // Save JPEG if($this->format == "JPG" OR $this->format == "JPEG") { if($this->resize) { imageJPEG($this->img_output, $path, $this->quality); } else { copy($this->img_src, $path); } } // Save PNG elseif($this->format == "PNG") { if($this->resize) { imagePNG($this->img_output, $path); } else { copy($this->img_src, $path); } } // Save GIF elseif($this->format == "GIF") { if($this->resize) { imageGIF($this->img_output, $path); } else { copy($this->img_src, $path); } } } // Get width public function get_width() { return $this->x_input; } // Get height public function get_height() { return $this->y_input; } // Clear image cache public function clear_cache() { @ImageDestroy($this->img_input); @ImageDestroy($this->img_output); } } class thumbnail extends imaging { private $image; private $width; private $height; function __construct($image,$width,$height) { parent::set_img($image); parent::set_quality(80); parent::set_size($width,$height); $this->thumbnail= pathinfo($image, PATHINFO_DIRNAME).pathinfo($image, PATHINFO_FILENAME).'_tn.'.pathinfo($image, PATHINFO_EXTENSION); parent::save_img($this->thumbnail); parent::clear_cache(); } function __toString() { return $this->thumbnail; } }
Bom para usar básicamente você deve chamar o objeto da seguinte forma
$thumb = new thumbnail('teste5.jpg',130,120); echo '';
É isso se alguém tiver alguma dúvida ou sugestão por favor utilizem os comentários.
Seja Membro Gratuítamente

Assine a newsletter para receber em seu email as publicações atualizadas neste blog

Top