Dengar's Blog Logo

Dengar's blog...
We will see what I post, probably will be some random tutorials

Wednesday, 10 April 2013

PHP Image Downloader Class

a simple PHP class with just one method to download images from a remote server. checks for supported types (gif, jpg, png) and will throw an exception if the file is not supported.

usage:

  1. create instance if ImageDownloader
  2. call function downloadImageFrom with parameters: url, destination in local file-system, image name, image type
explanation of download image:
  1. check if the image type is supported
  2. get width and height of original image
  3. create a new image on local machine with width and height
  4. check the filetype and load correct image from imagecreatefrom~ function, parsing the image remote url
  5. resample the image
  6. save the image as the correct filetype using img~ function, parsing the image in memory and the new filename

code:

class ImageDownloader {
var $supported = array("png","jpg","gif");
function downloadImageFrom($url, $to, $fn, $img_type) {
if (in_array($img_type, $this -> supported)) {
list($width, $height) = getimagesize($url);
$newImg = imagecreatetruecolor($width, $height);
$imageTmp = '';
if ($img_type == 'png') {
$imageTmp = imagecreatefrompng($url);
}
elseif ($img_type == 'jpg') {
$imageTmp = imagecreatefromjpeg($url);
}
elseif ($img_type == 'gif') {
$imageTmp = imagecreatefromgif($url);
}
if ($imageTmp != '') {
imagecopyresampled($newImg, $imageTmp, 0, 0, 0, 0, $width, $height, $width, $height);
$newPath = $to . $fn . '.' . $img_type;
$this -> imgLoc = $newPath;
if ($img_type == 'jpg') {
imagejpeg($newImg, $newPath);
}
elseif ($img_type == 'gif') {
imagegif($newImg, $newPath);
}
elseif ($img_type == 'png') {
imagepng($newImg, $newPath);
}
}
}
else {
throw new Exception('Not supported file-type');
}
}

No comments: