0

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).

Kevin G
  • 168
  • 2
  • 15
  • 1
    Does this answer your question? [Convert jpg to webp using imagewebp](https://stackoverflow.com/questions/26314508/convert-jpg-to-webp-using-imagewebp) - just modify the code to use the proper imagecreatefromxxxx to suit your need) – Ken Lee Feb 04 '22 at 03:10
  • No, I've already seen that issue (see first link in my issue) and tried it. the code that I've pasted to my issue is the modified code from that. – Kevin G Feb 04 '22 at 15:24

0 Answers0