ID:               40158
 Updated by:       [EMAIL PROTECTED]
 Reported By:      henus at mail dot ru
 Status:           Feedback
 Bug Type:         GD related
 Operating System: Windows XP
 PHP Version:      5.2.0
 Assigned To:      pajoye
 New Comment:

(rgba(255,0,0,xxx)) should have been (rgba(0,0,255,xxx)) but you
noticed it :)


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

[2007-01-18 18:51:04] [EMAIL PROTECTED]

An absolute black image is not what you should expect.

imagefilter($mask, IMG_FILTER_COLORIZE, -255, -255, 0); will replace
the white color with blue (you remove all components but the blue):

http://blog.thepimp.net/misc/bug40158_filtered_mask.png

imagecopy($imagemain, $mask, 0, 0, 0, 0, $imagewidth, $imageheight);
will copy it over the $imagemain, the border of the quadrant will be
blended over black:

http://blog.thepimp.net/misc/bug40158_result.png

Each pixel in your circle are rgb(255,255,255) with some alpha value in
the edges (and only in the edges). You are substracting 255 to the R and
G component, the result is blue.


Now, take a look at this image:
http://blog.thepimp.net/misc/bug40158_correct_filtered_mask.png

It is what you are expecting (if I understand correctly your problem).
The edges of the circle have a blue color with various alpha values
(rgba(255,0,0,xxx)). You can reproduce it by disabling the alpha
blending mode in the mask image (imagealphablending($mask, false); ).
The alpha component will be kept and stored in the image instead of
being used as a blending value.

Let me know if that solves your problem.

By the way, COLORIZE uses gdImageColor. The lines you are referring to
are in the contrast function.



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

[2007-01-18 18:32:16] henus at mail dot ru

i expect absolutely black image like
http://www.fort-ross.ru/henus/gd/result_correct.png
instead of 
http://www.fort-ross.ru/henus/gd/result_incorrect.png

i use colorizing by black for clearness.

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

[2007-01-18 18:11:31] henus at mail dot ru

correction fo my previous post about
php-5.2.0\ext\gd\libgd\gd.c 



Lines 3682-3688:
new_pxl = gdImageColorAllocateAlpha(src, (int)r, (int)g, (int)b, a);
if (new_pxl == -1) {
        new_pxl = gdImageColorClosestAlpha(src, (int)r, (int)g, (int)b, a);
}
if ((y >= 0) && (y < src->sy)) {
        gdImageSetPixel (src, x, y, new_pxl);


in gdImageSetPixel src should be absolutely transparent, with 
alpha=127
differently it mix colors.

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

[2007-01-18 18:09:31] [EMAIL PROTECTED]

Please provide an *image* showing what you expect.

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

[2007-01-18 17:56:25] henus at mail dot ru

i create black image and overlay it by colorized
white-truecolor-png24-image ( http://fort-ross.ru/henus/gd/mask.png )
 
the result of colorize like:
imagefilter($mask, IMG_FILTER_COLORIZE, -255, -255, -255);
is image:
http://www.fort-ross.ru/henus/gd/result_incorrect.png 
which contain artefacts...



also, the result of such script (
http://fort-ross.ru/henus/gd/demo2.phps )
is:

is truecolor - 1
before - Array ( [red] => 255 [green] => 255 [blue] => 255 [alpha] =>
63 ) 
wrong result, using filter - Array ( [red] => 126 [green] => 126 [blue]
=> 126 [alpha] => 31 ) 
wrong result, using imagecolorallocatealpha and imagesetpixel - Array (
[red] => 126 [green] => 126 [blue] => 126 [alpha] => 31 ) 
correct result, using imagefill, imagecolorallocatealpha and
imagesetpixel - Array ( [red] => 0 [green] => 0 [blue] => 0 [alpha] =>
63 )

I.e.
colorizing pixel ( [red] => 255 [green] => 255 [blue] => 255 [alpha] =>
63 ) to black 
should be with ( [red] => 0 [green] => 0 [blue] => 0 [alpha] => 63 ), 
not  ( [red] => 126 [green] => 126 [blue] => 126 [alpha] => 31 )

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/40158

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

Reply via email to