1
0
mirror of https://github.com/php/php-src.git synced 2026-03-27 01:32:22 +01:00

Merge branch 'PHP-5.6'

* PHP-5.6:
  updated NEWS
  Fix #70102: imagecreatefromwebm() shifts colors
This commit is contained in:
Christoph M. Becker
2015-07-19 22:40:49 +02:00
2 changed files with 39 additions and 9 deletions

View File

@@ -57,21 +57,21 @@ static inline int clip(float v, int a, int b) {
return (v > b) ? b : (v < 0) ? 0 : (int)(v);
}
enum {
COLOR_RED = 0,
COLOR_GREEN = 1,
COLOR_BLUE = 2,
ALPHA_CHANNEL = 3
COLOR_RED = 1,
COLOR_GREEN = 2,
COLOR_BLUE = 3,
ALPHA_CHANNEL = 0
};
/* endian neutral extractions of RGBA from a 32 bit pixel */
/* endian neutral extractions of ARGB from a 32 bit pixel */
static const uint32 RED_SHIFT =
8 * (sizeof(uint32) - 1 - COLOR_RED); /* 24 */
8 * (sizeof(uint32) - 1 - COLOR_RED); /* 16 */
static const uint32 GREEN_SHIFT =
8 * (sizeof(uint32) - 1 - COLOR_GREEN); /* 16 */
8 * (sizeof(uint32) - 1 - COLOR_GREEN); /* 8 */
static const uint32 BLUE_SHIFT =
8 * (sizeof(uint32) - 1 - COLOR_BLUE); /* 8 */
8 * (sizeof(uint32) - 1 - COLOR_BLUE); /* 0 */
static const uint32 ALPHA_SHIFT =
8 * (sizeof(uint32) - 1 - ALPHA_CHANNEL); /* 0 */
8 * (sizeof(uint32) - 1 - ALPHA_CHANNEL); /* 24 */
static inline int GetRed(const uint32* rgba) {
return gdTrueColorGetRed(*rgba);

View File

@@ -0,0 +1,30 @@
--TEST--
Bug #70102 (imagecreatefromwebm() shifts colors)
--SKIPIF--
<?php
if (!extension_loaded('gd')) die('skip gd extension not available');
if (!function_exists('imagewebp') || !function_exists('imagecreatefromwebp'))
die('skip WebP support not available');
?>
--FILE--
<?php
$filename = __DIR__ . '/bug70102.webp';
$im = imagecreatetruecolor(8, 8);
$white = imagecolorallocate($im, 255, 255, 255);
var_dump($white & 0xffffff);
imagefilledrectangle($im, 0, 0, 7, 7, $white);
imagewebp($im, $filename);
imagedestroy($im);
$im = imagecreatefromwebp($filename);
$color = imagecolorat($im, 4, 4);
var_dump($color & 0xffffff);
?>
--CLEAN--
<?php
unlink(__DIR__ . '/bug70102.webp');
?>
--EXPECT--
int(16777215)
int(16777215)