-
-
Save ManzzBaria/1e62469e38e71b3aa85b to your computer and use it in GitHub Desktop.
Create thumbnail of image while uploading
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
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($size = 100) | |
{ | |
// Resize | |
if($this->x_input > $size && $this->y_input > $size) | |
{ | |
// Wide | |
if($this->x_input >= $this->y_input) | |
{ | |
$this->x_output = $size; | |
$this->y_output = ($this->x_output / $this->x_input) * $this->y_input; | |
} | |
// Tall | |
else | |
{ | |
$this->y_output = $size; | |
$this->x_output = ($this->y_output / $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); | |
} | |
} | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include("Imaging.php"); | |
// Begin | |
$img = new Imaging; | |
$img->set_img($source_path); | |
$img->set_quality(80); | |
// Small thumbnail | |
$img->set_size(200); | |
$img->save_img($destination_path); | |
// Finalize | |
$img->clear_cache(); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment