ID:               41820
 Updated by:       [EMAIL PROTECTED]
 Reported By:      richard dot gavenda at rksting dot cz
 Status:           Open
 Bug Type:         GD related
 Operating System: Windows XP
 PHP Version:      5.2.3
 Assigned To:      pajoye
 New Comment:

It is what I said, a rounding issue. I'm not sure yet how to make it
more portable.


Previous Comments:
------------------------------------------------------------------------

[2007-06-28 09:53:41] richard dot gavenda at rksting dot cz

AMD 32, Windows XP, PHP 5.2.3 - bug present
x86 64, Centos 4, PHP 4.3.9 - bug present
x86 32, Fedora Core 5, PHP 5.1.6 - bug present

Source image 800x600 filled with RBG(127,127,127):
target image 800x600 - OK
http://81.200.49.53:25459/resample.php?w=800&h=600&c=127

target image 701x600 - vertical stripes
http://81.200.49.53:25459/resample.php?w=701&h=600&c=127

target image 800x501 - horizontal stripes
http://81.200.49.53:25459/resample.php?w=800&h=501&c=127

target image 701x501 - noise
http://81.200.49.53:25459/resample.php?w=701&h=501&c=127

"When is source image filled with RGB values equal to power of 2
(0,1,2,4,8,16,32,64,128) the noise disappears", this rule i can
reproduce only on AMD 32 architecture. On other platform is noise
present regardless of fill color.

------------------------------------------------------------------------

[2007-06-28 07:29:29] [EMAIL PROTECTED]

CopyResampled using floating points to calculate the destination color.
It may result to rounding problem. However I cannot reproduce this
problem on my development platforms (x86 32 and 64bit, amd 64).

What's your architecture?

------------------------------------------------------------------------

[2007-06-27 10:08:39] richard dot gavenda at rksting dot cz

Title correction

------------------------------------------------------------------------

[2007-06-27 10:07:40] richard dot gavenda at rksting dot cz

Description:
------------
When resizing an image filled with solid color using
imagecopyresampled, a destination image is not filled with same solid
color, but with noise of two colors. I was tried this with grayscale
images. Second color in noise was exactly same as source color, but with
RGB channels lowered by 1. When the source image was filled with color,
which had RGB channels values equal to power of 2
(0,1,2,4,8,16,32,64,128) the noise disappears. 

Reproduce code:
---------------
$im = imagecreatetruecolor(1045,600);
$back = imagecolorallocate($im, 100, 100, 100);
imagefill($im, 0, 0, $back);
$im2 = imagecreatetruecolor(383,220);
imagecopyresampled($im2,$im,0,0,0,0,383,220,1045,600);
imagepng($im2);

Expected result:
----------------
PNG file filled with color 100,100,100(RGB)

Actual result:
--------------
PNG file filled with color noise of 100,100,100(RGB) and 99,99,99(RGB)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=41820&edit=1

Reply via email to