I have read several issues and possible solutions on stackoverflow/github/php docs/etc., and I still can't seem to find or figure a way to convert images (gif/jpeg/png) to webp format. Most recently I stumbled upon this question; which I tried to recreate something similar with this function I wrote:
1 function create_webp_image($image_path) {
2 $image_properties = @getimagesize($image_path);
3 $image_info = pathinfo($image_path);
4 $image_type = $image_properties[2];
5 switch ($image_type) {
6 case 1:
7 $img = @imagecreatefromgif($image_path);
8 break;
9 case 2:
10 $img = @imagecreatefromjpeg($image_path);
11 break;
12 case 3:
13 $img = @imagecreatefrompng($image_path);
14 break;
15 }
16 $new_path = $image_info['dirname'].'/'.$image_info['filename'].'.webp';
17 $this->log->debug("image_properties", json_encode($image_properties, JSON_PRETTY_PRINT));
18 $this->log->debug("image_info", json_encode($image_info, JSON_PRETTY_PRINT));
19 $this->log->debug("img", $img);
20 $this->log->debug("new_path", $new_path);
21 $webp = imagewebp($img, $new_path); // with or without (..., quality= int)
22 $this->log->debug("webp", $webp);
23 imagedestroy($img);
24 }
The code runs up until line 22, which it doesn't log.
I also saw that you can use imagecreatefromstring() that I wanted to incorporate rather than using the switch statement, but can't seem to figure out my first issue (getting this thing to work).