Edit report at https://bugs.php.net/bug.php?id=66590&edit=1
ID: 66590
User updated by: hbengali at chromium dot org
Reported by: hbengali at chromium dot org
Summary: libwebp version used in imagewebp is out of date
Status: Assigned
Type: Bug
Package: *Graphics related
Operating System: All
PHP Version: 5.5.8
Assigned To: pajoye
Block user comment: N
Private report: N
New Comment:
Here is a proposed fix from one of the WebP developers with the disclaimer that it is untested and
may have incorrect local style.
diff --git a/ext/gd/libgd/webpimg.c b/ext/gd/libgd/webpimg.c
index 01bef93..ca4e9bc 100644
--- a/ext/gd/libgd/webpimg.c
+++ b/ext/gd/libgd/webpimg.c
@@ -778,6 +778,18 @@ WebPResult WebPEncode(const uint8* Y,
(chunk_size >> 16) & 255,
(chunk_size >> 24) & 255 };
memcpy(*p_out, kRiffHeader, kRiffHeaderSize);
+ if (img_size_bytes & 1) { /* write a padding byte */
+ const int new_size = *p_out_size_bytes + 1;
+ unsigned char* p = (unsigned char*)realloc(*p_out, new_size);
+ if (p == NULL) {
+ free(*p_out);
+ *p_out = NULL;
+ *p_out_size_bytes = 0;
+ return webp_failure;
+ }
+ p[new_size - 1] = 0;
+ *p_out_size_bytes = new_size;
+ }
if (psnr) {
*psnr = WebPGetPSNR(Y, U, V, *p_out, *p_out_size_bytes);
Previous Comments:
------------------------------------------------------------------------
[2014-01-28 00:01:40] hbengali at chromium dot org
It was brought to my attention that I did not correctly describe the issue. Here is a more accurate
summary of what the problem is:
The code in php (libgd) uses libvpx and writes the riff manually actually. The code generates the
correct even size, but neglects the padding. It's possible older versions of libwebp would
decode this, but libwebp 0.4.0 does not.
------------------------------------------------------------------------
[2014-01-27 21:48:09] hbengali at chromium dot org
My bad - I did not mean for this to be a bug against the documentation. Thanks for redirecting it.
------------------------------------------------------------------------
[2014-01-27 21:45:12] bjori@php.net
Did you mean to file this as a bug report for the docs?
Seems like this is a problem with the extension rather then the docs?
------------------------------------------------------------------------
[2014-01-27 21:33:28] hbengali at chromium dot org
Description:
------------
---
From manual page: http://www.php.net/function.imagewebp
---
The latest version of libwebp (0.4.0) needs to be used here. Use of the older version causes
inconsistencies when rendering in browsers that use libwebp 0.4.0. For example: https://code.google.com/p/webp/issues/detail?id=185
libwebp 0.4.0 can be found here: https://code.google.com/p/webp/downloads/detail?name=libwebp-0.4.0.tar.gz&can=2&q=
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=66590&edit=1