Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

606c7e52f11b76160086.webp

 

위 사진과 같은 WEBP 사진을 올리면

 

PHP Fatal Error: gd-webp cannot allocate temporary buffer in \classes\file\FileHandler.class.php on line 577

 

이런 오류가 나옵니다 . 뭐가 문제일까요?

 

서버 환경은 윈도우 비트나미 WAMP 입니다.

 

577번째 줄을 보면

 

// create temporary image having original type
        if ($type === 'gif' && function_exists('imagecreatefromgif'))
        {
            $source = @imagecreatefromgif($source_file);
        }
        elseif ($type === 'jpg' && function_exists('imagecreatefromjpeg'))
        {
            $source = @imagecreatefromjpeg($source_file);
        }
        elseif ($type === 'png' && function_exists('imagecreatefrompng'))
        {
            $source = @imagecreatefrompng($source_file);
        }
        elseif ($type === 'bmp' && function_exists('imagecreatefrombmp'))
        {
            $source = @imagecreatefrombmp($source_file);
        }
        elseif ($type === 'webp' && function_exists('imagecreatefromwebp'))
        { 
           $source = @imagecreatefromwebp($source_file); 577번째 문장
        }
        else
        {
            return false;
        }
 

GD라이브러리랑 WEBP랑 문제 있는걸까요?

  • profile
    XE타운에서도 오류가 뜨네요;
  • profile

    https://bugs.php.net/bug.php?id=79809

    https://github.com/libgd/libgd/issues/648

    PHP GD쪽 버그라는것 같습니다.(애니메이션 webp를 제대로 처리하지 못함)

  • profile profile
    고치는방법은 안나와서 아쉽네요.. 타 CMS에선 못느낀거같았는데, 개인 의뢰하여 고쳐야되는거같습니다..
  • profile

    움직이는 webp는 사실상 왕따 신세인 포맷입니다. gif 대용으로는 mp4라는 막강한 경쟁자가 있는데, 구글에서 쓸데없는 포맷을 하나 더 만들어서 여러 사람 귀찮게 하는 것 같습니다. 아무튼 CMS의 문제가 아니라 PHP 엔진 자체에서 지원을 못 하는 것이니, 당장 필요하다면 고치기보다 우회하는 방법으로 가야겠지요.

     

    - 섬네일 생성, 크기 조절 등 어떤 조작도 시도하지 않고 이미지를 그대로 두기만 하는 CMS라면 오류가 나지 않을 것입니다. 단, 그만큼 많은 기능을 포기해야겠지요.

    - 움직이는 webp 이미지에 한하여 gd가 아닌 ffmpeg나 imagemagick으로 처리하도록 땜빵할 수도 있겠지요.

    - PHP에서 고쳐지더라도 8.1 이후의 차기버전에나 적용될 테니, PHP 버전업에 미리 대비하셔야겠습니다.

  • profile profile
    여러 방법과 대안을 가르켜주셔서 감사합니다. webp는 드물어서 잘사용안하긴하는데 가끔 webp로된 사진이 있어서 쉽게 고칠수있나 궁금했었습니다.
    말씀대로 php버젼업을 기다려봐야겠습니다.