Commit graph

415 commits

Author SHA1 Message Date
Christoph M. Becker
a16f0c5e01 Merge branch 'PHP-7.0' into PHP-7.1 2016-10-09 15:21:40 +02:00
Christoph M. Becker
c930714cbe Merge branch 'PHP-5.6' into PHP-7.0 2016-10-09 15:14:17 +02:00
Christoph M. Becker
b92216b97d Fix #73272: imagescale() affects imagesetinterpolation()
We must not permanently change the interpolation method, but rather
have to restore the old method after we're done with scaling the image.
2016-10-09 15:10:34 +02:00
Christoph M. Becker
2a305b38b7 Implement request #33066: Add GD Image Function gdImageOpenPolygon()
gdImageOpenPolygon() has been introduced with líbgd 2.0.29, so we finally
add a PHP binding for it, and port the respective libgd functionality to
PHP's bundled libgd.
2016-10-02 20:27:58 +02:00
Christoph M. Becker
d0f14a4429 Switch to libgd anti-aliased drawing API
Instead of rolling our own in the bundled libgd, we use libgd's anti-aliased
drawing API. This way imageantialias() is also available, when built against
a system libgd.
2016-10-02 13:16:40 +02:00
Christoph M. Becker
0e38932d14 Merge branch 'PHP-7.1' 2016-10-01 00:02:05 +02:00
Christoph M. Becker
f6da70863f Merge branch 'PHP-7.0' into PHP-7.1 2016-10-01 00:00:46 +02:00
Christoph M. Becker
12967bc346 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-30 23:54:18 +02:00
Christoph M. Becker
9acfb1a3a5 Fix #73213: Integer overflow in imageline() with antialiasing
We port the respective fixes <eca37d620>
and <837b7327> to our bundled libgd.
2016-09-30 23:38:13 +02:00
Christoph M. Becker
04400b19fc Remove basically effectless gdImageAABlend()
This had already be done for GD 2.0.26 as part of the improved antialiasing
support (<https://boutell.com/gd/manual2.0.26.html#whatsnew2.0.26>).
2016-09-30 16:12:47 +02:00
Christoph M. Becker
65ee87f20d Refactor imagegammacorrect()
We apply the law `(b**r)**s == b**(r*s)` which holds for all non-negative b
and positive r,s, so a single pow() suffices. Furthermore, we precompute the
gamma, so the refactored code is simpler and faster.
2016-09-25 11:28:39 +02:00
Christoph M. Becker
47f1666f7c Merge branch 'PHP-7.1' 2016-09-25 10:57:23 +02:00
Christoph M. Becker
daba342f57 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-25 10:49:43 +02:00
Christoph M. Becker
fa9d41f66c Merge branch 'PHP-5.6' into PHP-7.0 2016-09-25 10:46:44 +02:00
Christoph M. Becker
c696bc8cfa Fix test_image_equals_file() wrt. palette images
The recently introduced test_image_equals_file() doesn't properly work for
palette images, because in this case only the palette indexes are compared,
what can lead to false positives and negatives as shown in the added test.

To fix that we convert palette images to truecolor, what is supposed to be
faster than calling imagecolorsforindex() for each pixel.

We furthermore rely on PHP's refcounting to free unused images; after all,
this is not C.
2016-09-25 10:34:03 +02:00
Christoph M. Becker
2e1d20a28b Merge branch 'pull-request/2026' 2016-09-24 15:41:55 +02:00
Christoph M. Becker
d95b8eaf31 Don't enforce palette conversion when writing GD images
The GD image format is able to handle truecolor images as of libgd 2.0.12
(<https://github.com/libgd/libgd/blob/gd-2.2.3/src/gd_gd.c#L31-L33>).
Therefore we don't need the potentially lossy and time consuming palette
conversion.

This way, imagegd() can also be used to export raw truecolor image data.
2016-09-24 14:46:37 +02:00
Christoph M. Becker
c733f92d72 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-24 12:47:07 +02:00
Christoph M. Becker
5c81298597 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-24 12:41:48 +02:00
Christoph M. Becker
8f5eda4bf6 Fix #73161: imagecreatefromgd2() may leak memory 2016-09-24 12:36:54 +02:00
Christoph M. Becker
394e9b3d15 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-24 11:37:23 +02:00
Christoph M. Becker
61722743f4 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-24 11:31:54 +02:00
Christoph M. Becker
709731797c Fix #73159: imagegd2(): unrecognized formats may result in corrupted files
We must not apply the format correction twice for truecolor images.
2016-09-24 11:28:20 +02:00
Christoph M. Becker
bc9efac0fe Merge branch 'PHP-7.0' into PHP-7.1 2016-09-24 10:58:39 +02:00
Christoph M. Becker
0a4b72fa94 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-24 10:48:24 +02:00
Christoph M. Becker
c7936ead8f Fix #73155: imagegd2() writes wrong chunk sizes on boundaries 2016-09-24 10:33:49 +02:00
Christoph M. Becker
1da79a6c6e Fix #73157 (again): imagegd2() ignores 3rd param if 4 are given
Obviously, there was a bad merge.
2016-09-24 00:35:24 +02:00
Christoph M. Becker
bf66af1d60 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-24 00:07:50 +02:00
Christoph M. Becker
456be3ec37 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-23 23:46:22 +02:00
Christoph M. Becker
c240978067 Fix #73157: imagegd2() ignores 3rd param if 4 are given
We must initialize `q` for *more* than three parameters, too.
2016-09-23 23:42:34 +02:00
Christoph M. Becker
bf35b31f56 Fix FreeType tests using UTF-8 font file names
UTF-8 font file names are not yet supported on Windows[1], so we're skipping
the respective tests on this platform, but enable them on other platforms.

[1] <http://news.php.net/php.internals.win/1142>
2016-09-23 15:49:21 +02:00
Christoph M. Becker
8dfee1a777 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-23 12:57:10 +02:00
Christoph M. Becker
deda058751 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-23 12:29:37 +02:00
Christoph M. Becker
726c5999eb Rework FreeType related tests
Firstly, there is no fundamental difference between running the tests on
freetype before and after 2.4.10, so we re-join the respective test cases.

Secondly, there are some minor differences in the results depending on
architecture, freetype versions and config options, so we cater to that
by allowing small deviations from the expectations.
2016-09-23 12:00:41 +02:00
Christoph M. Becker
7e21cb0c99 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-20 12:18:13 +02:00
Christoph M. Becker
eeb9113b6c Skip failing FreeType tests for now 2016-09-20 12:16:16 +02:00
Christoph M. Becker
474428943f Merge branch 'PHP-7.0' into PHP-7.1 2016-09-20 01:32:32 +02:00
Christoph M. Becker
ba2d9e1ff1 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-20 01:25:08 +02:00
Christoph M. Becker
fc2cadca2d Merge branch 'pull-request/1845' into PHP-5.6 2016-09-20 01:05:57 +02:00
Christoph M. Becker
41001f8bb5 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-15 00:55:41 +02:00
Christoph M. Becker
cf9e2fbbf6 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-15 00:50:49 +02:00
Christoph M. Becker
7bfb7b62b1 Fix and reactivate regression test for bug #50194
Apparently, different FreeType versions render the string differently, so
we have to cater to these slight differences. Unfortunately, the testing
framework doesn't yet offer a clean API for this, so we work around the
limitations by parsing and checking the output of test_image_equals_file().
2016-09-15 00:46:00 +02:00
Christoph M. Becker
1c8c61f142 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-14 20:03:00 +02:00
Christoph M. Becker
7a923c3afe Merge branch 'PHP-5.6' into PHP-7.0 2016-09-14 20:02:05 +02:00
Christoph M. Becker
36df4f8419 Skip ext/gd/tests/bug50194.phpt for now
There are apparently issues with the font rendering with different freetype
version; I'll have a look at this issue ASAP.
2016-09-14 20:00:30 +02:00
Christoph M. Becker
b1a65452a1 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-14 16:01:02 +02:00
Christoph M. Becker
bc27ce98ee Merge branch 'PHP-5.6' into PHP-7.0 2016-09-14 15:50:09 +02:00
Christoph M. Becker
09eb6ed35e Fix #50194: imagettftext broken on transparent background w/o alphablending
We must not draw the background pixels of the character glyphs, what has
already been fixed in GD 2.0.26.
2016-09-14 15:47:32 +02:00
Christoph M. Becker
c7adfeb6c6 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-12 13:36:24 +02:00
Christoph M. Becker
82fa85fd08 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-12 13:27:57 +02:00