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:
@@ -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);
|
||||
|
||||
30
ext/gd/tests/bug70102.phpt
Normal file
30
ext/gd/tests/bug70102.phpt
Normal 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)
|
||||
Reference in New Issue
Block a user