Hàm imagewebp() trong PHP là gì ?

12/08/2020 - lượt xem
Chia sẻ
 
Rate this post

Hàm imagewebp() trong PHP có nhiệm vụ xuất ra một file ảnh định dạng webp ra trình duyệt hoặc thư mục. Cú pháp hàm imagewebp() trong PHP như sau:

imagewebp ( resource $image [, mixed $to = NULL [, int $quality = 80 ]] ) : bool

Tham số truyền vào 

  • $image là nguồn của ảnh được tạo ra từ một hàm tạo ảnh, như imagecreatetruecolor().
  • $to là đường dẫn lưu file khi xuất thành công, nếu $to rỗng hình ảnh sẽ được xuất trực tiếp.
  • $quality là chất lượng hình ảnh khi xuất hình.

 

Giá trị trả về

Hàm này trả về TRUE nếu thành công và FALSE nếu thất bại.

Ví dụ minh họa

<?php
// Tạo một khung ảnh
$im = imagecreatetruecolor(120, 20);
//Xác định màu sắc của nội dung
$text_color = imagecolorallocate($im, 233, 14, 91);
//Xác định cỡ font-size, vị trí toạ đố X - Y của TEXT và Giá trị của TEXT
imagestring($im, 1, 5, 5,  'WebP with PHP', $text_color);

// Lưu hình ảnh và tên
imagewebp($im, 'php.webp');

// Xoá thông tin về hình ảnh khỏi bộ nhớ
imagedestroy($im);

?>

Và kết quả trả về tương ứng sẽ là một file ảnh webp có nội dung như bên dưới.

Ứng dụng

<?php

// Image
$dir 'img/countries/';
$name 'brazil.png';
$newName 'brazil.webp';

// Create and save
$img imagecreatefrompng($dir $name);
imagepalettetotruecolor($img);
imagealphablending($imgtrue);
imagesavealpha($imgtrue);
imagewebp($img$dir $newName100);
imagedestroy($img);

?>

Trong ví dụ trên bạn có thể sử dụng hàm này kết hợp với các hàm khác để chuyển đổi các hình ảnh từ định dạng khác sang định dạng ảnh webp.

Một ví dụ khác cũng là việc chuyển đổi từ định dạng ảnh PNG sang ảnh Webp.

function compress_png($path_to_png_file, $max_quality = 90)
{
    if (!file_exists($path_to_png_file)) {
        throw new Exception("File does not exist: $path_to_png_file");
    }

    // guarantee that quality won't be worse than that.
    $min_quality = 60;

    // '-' makes it use stdout, required to save to $compressed_png_content variable
    // '<' makes it read from the given file path
    // escapeshellarg() makes this safe to use with any path
    $compressed_png_content = shell_exec("pngquant --quality=$min_quality-$max_quality - < ".escapeshellarg(    $path_to_png_file));

    if (!$compressed_png_content) {
        throw new Exception("Conversion to compressed PNG failed. Is pngquant 1.8+ installed on the server?");
    }

    return $compressed_png_content;
}
$read_from_path $_FILE['file']['tmp_name'];
//url file
$save_to_path "uploads/compressed_file.png";
//url save file

$compressed_png_content compress_png($read_from_path);
file_put_contents($save_to_path$compressed_png_content);

imagewebp(imagecreatefrompng($read_from_path), $save_to_path ".webp");
?>

Các hàm liên quan

  • imagecreatetruecolor() hàm tạo một khung ảnh với 2 tham số width,height.
  • imagecolorallocate() hàm xác định giá trị màu sắc theo chuẩn màu rgb.
  • imagestring() hàm tạo text vào ảnh.

Hi vọng với bài viết này, bạn đã hiểu rõ cách sử dụng hàm imagewebp() trong PHP. Nếu thấy bài viết hay và ý nghĩa, hãy like và chia sẻ với bạn bè để mọi người cùng nhau học tập nhé. Cảm ơn bạn đã ghé thăm codetutam.com    

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm