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($img, true); imagesavealpha($img, true); imagewebp($img, $dir . $newName, 100); 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