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
Hàm này trả về TRUE nếu thành công và FALSE nếu thất bại.
<?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.
<?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");
?>
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
Bình luận: