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 .









Comments