Create thumbnail any size wihout affect image quality
Step 1: First we need to create two constant that have max size of width and height for thumbnail.
define('Thumbnail_Width', 150);
define('Thumbnail_Height', 150);
Step 2: Create function to generate thumbnail.
function get_thumbnail($source_image_path, $thumbnail_image_path)
{
list($source_image_width, $source_image_height, $source_image_type) = getimagesize($source_image_path);
switch ($source_image_type) {
case IMAGETYPE_GIF:
$source_gd_image = imagecreatefromgif($source_image_path);
break;
case IMAGETYPE_JPEG:
$source_gd_image = imagecreatefromjpeg($source_image_path);
break;
case IMAGETYPE_PNG:
$source_gd_image = imagecreatefrompng($source_image_path);
break;
}
if ($source_gd_image === false) {
return false;
}
$source_aspect_ratio = $source_image_width / $source_image_height;
$thumbnail_aspect_ratio = Thumbnail_Width / Thumbnail_Height;
if ($source_image_width <= Thumbnail_Width && $source_image_height <= Thumbnail_Height) {
$thumbnail_image_width = $source_image_width;
$thumbnail_image_height = $source_image_height;
} elseif ($thumbnail_aspect_ratio > $source_aspect_ratio) {
$thumbnail_image_width = (int) (Thumbnail_Height * $source_aspect_ratio);
$thumbnail_image_height = Thumbnail_Height;
} else {
$thumbnail_image_width = Thumbnail_Width;
$thumbnail_image_height = (int) (Thumbnail_Width / $source_aspect_ratio);
}
$thumbnail_gd_image = imagecreatetruecolor($thumbnail_image_width, $thumbnail_image_height);
imagecopyresampled($thumbnail_gd_image, $source_gd_image, 0, 0, 0, 0, $thumbnail_image_width, $thumbnail_image_height, $source_image_width, $source_image_height);
$img_disp = imagecreatetruecolor(Thumbnail_Width,Thumbnail_Width);
$backcolor = imagecolorallocate($img_disp,0,0,0);
imagefill($img_disp,0,0,$backcolor);
imagecopy($img_disp, $thumbnail_gd_image, (imagesx($img_disp)/2)-(imagesx($thumbnail_gd_image)/2), (imagesy($img_disp)/2)-(imagesy($thumbnail_gd_image)/2), 0, 0, imagesx($thumbnail_gd_image), imagesy($thumbnail_gd_image));
imagejpeg($img_disp, $thumbnail_image_path, 90);
imagedestroy($source_gd_image);
imagedestroy($thumbnail_gd_image);
imagedestroy($img_disp);
return true;
}
Step3: Need to call function which we create in step 2.
get_thumbnail('full_image.jpg', 'new_generate_thumb.jpg');
A) First prameter of function is image name which we have in full size.
B) Second parameter is path where thubnail stored. you can pass only image name so it will store where function will called.
For any query email at pankajtec@gmail.com .
define('Thumbnail_Width', 150);
define('Thumbnail_Height', 150);
Step 2: Create function to generate thumbnail.
function get_thumbnail($source_image_path, $thumbnail_image_path)
{
list($source_image_width, $source_image_height, $source_image_type) = getimagesize($source_image_path);
switch ($source_image_type) {
case IMAGETYPE_GIF:
$source_gd_image = imagecreatefromgif($source_image_path);
break;
case IMAGETYPE_JPEG:
$source_gd_image = imagecreatefromjpeg($source_image_path);
break;
case IMAGETYPE_PNG:
$source_gd_image = imagecreatefrompng($source_image_path);
break;
}
if ($source_gd_image === false) {
return false;
}
$source_aspect_ratio = $source_image_width / $source_image_height;
$thumbnail_aspect_ratio = Thumbnail_Width / Thumbnail_Height;
if ($source_image_width <= Thumbnail_Width && $source_image_height <= Thumbnail_Height) {
$thumbnail_image_width = $source_image_width;
$thumbnail_image_height = $source_image_height;
} elseif ($thumbnail_aspect_ratio > $source_aspect_ratio) {
$thumbnail_image_width = (int) (Thumbnail_Height * $source_aspect_ratio);
$thumbnail_image_height = Thumbnail_Height;
} else {
$thumbnail_image_width = Thumbnail_Width;
$thumbnail_image_height = (int) (Thumbnail_Width / $source_aspect_ratio);
}
$thumbnail_gd_image = imagecreatetruecolor($thumbnail_image_width, $thumbnail_image_height);
imagecopyresampled($thumbnail_gd_image, $source_gd_image, 0, 0, 0, 0, $thumbnail_image_width, $thumbnail_image_height, $source_image_width, $source_image_height);
$img_disp = imagecreatetruecolor(Thumbnail_Width,Thumbnail_Width);
$backcolor = imagecolorallocate($img_disp,0,0,0);
imagefill($img_disp,0,0,$backcolor);
imagecopy($img_disp, $thumbnail_gd_image, (imagesx($img_disp)/2)-(imagesx($thumbnail_gd_image)/2), (imagesy($img_disp)/2)-(imagesy($thumbnail_gd_image)/2), 0, 0, imagesx($thumbnail_gd_image), imagesy($thumbnail_gd_image));
imagejpeg($img_disp, $thumbnail_image_path, 90);
imagedestroy($source_gd_image);
imagedestroy($thumbnail_gd_image);
imagedestroy($img_disp);
return true;
}
Step3: Need to call function which we create in step 2.
get_thumbnail('full_image.jpg', 'new_generate_thumb.jpg');
A) First prameter of function is image name which we have in full size.
B) Second parameter is path where thubnail stored. you can pass only image name so it will store where function will called.
For any query email at pankajtec@gmail.com .
Comments
Post a Comment