Code PHP tự động cắt ảnh với tỉ lệ và nền trắng (cắt ảnh, tạo nền code PHP)

Thiết kế Web Ninh Bình – SEO web Ninh Bình NBpage.Com xin giới thiệu và chia sẻ tới anh em code PHP tự động cắt ảnh và tạo nền cho ảnh (nền trắng,…) theo tỉ lệ mà mình đã sử dụng rất nhiều và trong các tool cũng như trong website wordpress hiện nay.

<?php

//resize and crop image by center
function resize_crop_image($max_width, $max_height, $source_file, $dst_dir, $quality = 80){
    $imgsize = getimagesize($source_file);
    $width = $imgsize[0];
    $height = $imgsize[1];
    $mime = $imgsize['mime'];

    switch($mime){
        case 'image/gif':
            $image_create = "imagecreatefromgif";
            $image = "imagegif";
            break;

        case 'image/png':
            $image_create = "imagecreatefrompng";
            $image = "imagepng";
            $quality = 7;
            break;

        case 'image/jpeg':
            $image_create = "imagecreatefromjpeg";
            $image = "imagejpeg";
            $quality = 80;
            break;

        default:
            return false;
            break;
    }

    $dst_img = imagecreatetruecolor($max_width, $max_height);
    $src_img = $image_create($source_file);

    $width_new = $height * $max_width / $max_height;
    $height_new = $width * $max_height / $max_width;
    //if the new width is greater than the actual width of the image, then the height is too large and the rest cut off, or vice versa
    if($width_new > $width){
        //cut point by height
        $h_point = (($height - $height_new) / 2);
        //copy image
        imagecopyresampled($dst_img, $src_img, 0, 0, 0, $h_point, $max_width, $max_height, $width, $height_new);
    }else{
        //cut point by width
        $w_point = (($width - $width_new) / 2);
        imagecopyresampled($dst_img, $src_img, 0, 0, $w_point, 0, $max_width, $max_height, $width_new, $height);
    }

    $image($dst_img, $dst_dir, $quality);

    if($dst_img)imagedestroy($dst_img);
    if($src_img)imagedestroy($src_img);
}
//usage
resize_crop_image(300, 200, "original.png", "thumb.png");
?>

Anh em có thể test và tham khảo đoạn code PHP trên nhé, mọi chi tiết xin liên hệ với mình DƯƠNG – THIẾT KẾ WEBSITE TẠI NINH BÌNH 0966.25.66.26 mình sẽ hướng dẫn chi tiết cho anh em.

ZALO - THIẾT KẾ WEBSITE NINH BÌNH
ZALO - THIẾT KẾ WEB NINH BÌNH