Tạo thumbnail cho hình ảnh bằng PHP

Hướng dẫn cách tạo thumbnail cho hình ảnh bằng PHP với sự hỗ trợ của thư viện GD. Mã PHP này giúp tạo ảnh thu nhỏ từ ảnh gốc với kích thước tùy chỉnh.

<?php
function createThumbnail($source_image_path, $thumbnail_path, $thumb_width) {
    // Lấy thông tin ảnh gốc
    list($width, $height, $image_type) = getimagesize($source_image_path);

    // Tính toán kích thước thumbnail
    $thumb_height = intval($height * $thumb_width / $width);

    // Tạo ảnh thumbnail rỗng
    $thumbnail = imagecreatetruecolor($thumb_width, $thumb_height);

    // Tạo ảnh từ file gốc
    switch ($image_type) {
        case IMAGETYPE_GIF:
            $source_image = imagecreatefromgif($source_image_path);
            break;
        case IMAGETYPE_JPEG:
            $source_image = imagecreatefromjpeg($source_image_path);
            break;
        case IMAGETYPE_PNG:
            $source_image = imagecreatefrompng($source_image_path);
            break;
        default:
            return false;
    }

    // Resize ảnh gốc thành ảnh thumbnail
    imagecopyresampled($thumbnail, $source_image, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height);

    // Lưu ảnh thumbnail
    switch ($image_type) {
        case IMAGETYPE_GIF:
            imagegif($thumbnail, $thumbnail_path);
            break;
        case IMAGETYPE_JPEG:
            imagejpeg($thumbnail, $thumbnail_path, 90); // Chất lượng ảnh 90%
            break;
        case IMAGETYPE_PNG:
            imagepng($thumbnail, $thumbnail_path);
            break;
    }

    // Giải phóng bộ nhớ
    imagedestroy($source_image);
    imagedestroy($thumbnail);

    return true;
}

// Sử dụng hàm để tạo thumbnail
$source_image = 'source_image.jpg';
$thumbnail_image = 'thumbnail_image.jpg';
$thumbnail_width = 150;

if (createThumbnail($source_image, $thumbnail_image, $thumbnail_width)) {
    echo "Thumbnail đã được tạo thành công!";
} else {
    echo "Không thể tạo thumbnail.";
}
?>

Giải thích chi tiết:

  1. Lấy thông tin ảnh gốc:

    • getimagesize($source_image_path): Lấy kích thước và loại ảnh của file ảnh gốc.
  2. Tính toán kích thước thumbnail:

    • $thumb_height = intval($height * $thumb_width / $width): Tính chiều cao tương ứng cho ảnh thumbnail dựa trên tỷ lệ của ảnh gốc.
  3. Tạo ảnh thumbnail rỗng:

    • imagecreatetruecolor($thumb_width, $thumb_height): Tạo một canvas trống cho ảnh thumbnail với kích thước đã xác định.
  4. Tạo ảnh từ file gốc:

    • Sử dụng imagecreatefromgif, imagecreatefromjpeg, imagecreatefrompng để tạo ảnh từ file gốc, dựa trên loại ảnh (GIF, JPEG, PNG).
  5. Resize ảnh gốc thành ảnh thumbnail:

    • imagecopyresampled(): Chức năng resize và giữ chất lượng tốt nhất cho ảnh khi thu nhỏ.
  6. Lưu ảnh thumbnail:

    • Lưu ảnh dưới định dạng gốc (GIF, JPEG, PNG) bằng các hàm tương ứng imagegif, imagejpeg, và imagepng.
  7. Giải phóng bộ nhớ:

    • imagedestroy(): Xóa dữ liệu ảnh gốc và ảnh thumbnail khỏi bộ nhớ để tránh làm đầy bộ nhớ.
  8. Sử dụng hàm:

    • Thực hiện việc tạo thumbnail từ file ảnh gốc và lưu nó vào một file mới.

Phiên bản PHP:

Mã này có thể chạy trên các phiên bản PHP từ 5.0 trở lên, yêu cầu extension GD để xử lý hình ảnh.



Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Cách sử dụng hàm strtok() trong PHP

Bài viết hướng dẫn cách sử dụng hàm `strtok` trong PHP để phân tách chuỗi thành các phần nhỏ dựa trên các ký tự phân tách. Hàm `strtok` là công cụ hữu ích để thao tác và xử lý chuỗi trong các dự án PHP.
Lấy ký tự cuối cùng của chuỗi trong PHP

Hướng dẫn cách sử dụng PHP để lấy ký tự cuối cùng của một chuỗi. Mã PHP này giúp bạn dễ dàng truy xuất ký tự cuối của chuỗi văn bản trong các thao tác xử lý chuỗi.
Hướng dẫn đọc nội dung file Excel bằng PHP

Hướng dẫn chi tiết cách đọc nội dung từ file Excel (.xlsx, .xls) bằng PHP, sử dụng thư viện PHPExcel và các bước cài đặt cũng như triển khai cụ thể.
Lấy nội dung từ database MySQL bằng PHP

Hướng dẫn cách lấy nội dung từ database MySQL sử dụng PHP. Bao gồm mã nguồn và giải thích chi tiết từng bước để kết nối và truy vấn cơ sở dữ liệu MySQL.
Cách chuyển chuỗi Markdown sang HTML bằng PHP

Hướng dẫn cách chuyển đổi chuỗi Markdown sang HTML trong PHP bằng cách sử dụng thư viện `Parsedown`, giúp bạn hiển thị nội dung Markdown một cách hiệu quả trên trang web của mình.
Xác thực JSON Web Token (JWT) trong PHP

Bài viết hướng dẫn cách sử dụng JSON Web Token (JWT) để xác thực trong PHP. Sử dụng JWT giúp bảo mật thông tin giữa client và server một cách hiệu quả và dễ dàng triển khai trong các ứng dụng web.
Ví dụ về Factory Pattern trong PHP

Hướng dẫn về Factory Pattern trong PHP với ví dụ cụ thể giúp bạn hiểu rõ cách sử dụng mẫu thiết kế này trong lập trình hướng đối tượng.
Ví dụ về lập trình hướng đối tượng (OOP) trong PHP

Hướng dẫn ví dụ cơ bản về lập trình hướng đối tượng (OOP) trong PHP, giải thích cách sử dụng các class và object để tổ chức mã nguồn theo phương pháp OOP.
Cập nhật nhiều cột trong MySQL bằng PHP

Hướng dẫn cách cập nhật nhiều cột trong MySQL bằng PHP. Mã PHP này sử dụng câu lệnh UPDATE để thay đổi nhiều giá trị của các cột trong cơ sở dữ liệu MySQL.
Cách trích xuất số từ chuỗi trong PHP

Bài viết này hướng dẫn cách trích xuất các số từ chuỗi trong PHP bằng nhiều cách khác nhau như sử dụng regex (biểu thức chính quy), các hàm PHP có sẵn như `preg_match_all`, `filter_var`, và các phương pháp thủ công.

Đã thêm vào giỏ hàng