Re: [PHP-WIN] GD imagerectangle() function - background transparency?

[email protected] ("Jacob Kruger") Fri, 6 Sep 2013 11:13:15 +0200
Newsgroups php.windows
Message-ID <944F9647E3F94857BA75DBE7275CD4F6@JacobPC>
Well, here's one of the test images - literally just a test image I took of 
a pseudo-toy a while ago:
https://dl.dropboxusercontent.com/u/13327195/13771158254.png

And, here's the current output/finished off version:
https://dl.dropboxusercontent.com/u/13327195/14watermarked.png

The two areas that should have had boxes drawn for them are:
And, the coordinates of the two test/text areas/box outlines are (x-y*x-y):
10-10*200-50
50-50*500-80

Thanks

Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'

----- Original Message ----- 
From: "Pierre Joye" <[email protected]>
To: "Jacob Kruger" <[email protected]>
Cc: "php-windows" <[email protected]>
Sent: Friday, September 06, 2013 10:45 AM
Subject: Re: [PHP-WIN] GD imagerectangle() function - background 
transparency?


> thanks, but I was asking for the source image(s) and the resulting
> image (use gimp or whatever to show what you would like to achieve),
> easier to actually see what you want to do :)
>
> About transparency, see imagealphablending and imagesavealpha
>
> On Fri, Sep 6, 2013 at 9:39 AM, Jacob Kruger <[email protected]> wrote:
>> Ok, here's the test code - the drawBox() function is the current
>> application/implementation am now trying out:
>>
>> <?php
>> function drawBox($img, $arCoords, $iColour, $iThickness=2) {
>> imagesetthickness($img, $iThickness);
>> $xLeft = intval($arCoords[0]);
>> $yTop = intval($arCoords[1]);
>> $xRight = intval($arCoords[2]);
>> $yBottom = intval($arCoords[3]);
>> imageline($img, $xLeft, $yTop, $xRight, $yTop, $iColour);
>> imageline($img, $xLeft, $yTop, $xLeft, $yBottom, $iColour);
>> imageline($img, $xRight, $yTop, $xRight, $yBottom, $iColour);
>> imageline($img, $xLeft, $yBottom, $xRight, $yBottom, $iColour);
>> return $img;
>> }//end of drawBox function
>>
>> $imgOut = imagecreatefrompng("./images/test.png");
>> $colourYellow = imagecolorallocate($imgOut, 255, 255, 0);
>> $arBoxCoords = array(50, 50, 150, 150);
>> $imgOut = drawBox($imgOut, $arBoxCoords, $colourYellow, 2);
>> header("Content-Disposition: inline; filename=\"test.png\"");
>> header("Content-Type: image/png");
>> imagepng($imgOut);
>> imagedestroy($imgOut);
>> exit;
>> ?>
>>
>>
>> Jacob Kruger
>> Blind Biker
>> Skype: BlindZA
>> '...fate had broken his body, but not his spirit...'
>>
>> ----- Original Message ----- From: "Jacob Kruger" <[email protected]>
>> To: <[email protected]>
>> Cc: "Pierre Joye" <[email protected]>
>> Sent: Friday, September 06, 2013 8:39 AM
>>
>> Subject: Re: [PHP-WIN] GD imagerectangle() function - background
>> transparency?
>>
>>
>>> Effectively, I've got sort of template images, and want to sort of draw
>>> multiple outline boxes onto them where users can then choose one to then
>>> insert text onto image - almost like a form of eCard template rendition,
>>> but, bit different.
>>>
>>> I was originally trying to show the boxes/areas to the user using
>>> relatively positioned template images, overlaid by absolutely positioned
>>> div elements, with coloured borders, handled using CSS, and then jQuery 
>>> to
>>> manipulate the highlighted/chosen one by changing it's border-color CSS
>>> attribute, client-side/at runtime, but, this doesn't always seem to
>>> cooperate/implement it at run time.
>>>
>>> Have now told them will try sort of dynamically generating a version of
>>> the template image, server-side, with the various area outlines drawn 
>>> onto
>>> it, which can then reload at run-time when a new text outline area is
>>> selected, but initially tried creating an image resource from the 
>>> template
>>> file, and then using imagerectangle to draw a rectangle onto it, after
>>> allocating the relevant colour, and setting drawing thickness, but, it
>>> seemed to be blanking out the template image, so I then tried creating a
>>> new image resource of the same dimensions, filling it up with an obscure
>>> colour, draw the rectangle onto it, set it's transparency to the obscure
>>> colour, and then use either imagecopy() or imagecopymerge() to copy it
>>> over the original template image, but, still seems to be just blocking 
>>> out
>>> the actual template image.
>>>
>>> Now, suppose will maybe also try out splitting the blocks to be drawn up
>>> into actual lines, and just try drawing the lines onto the original
>>> template image, and see if that works, since at the moment, apparently 
>>> the
>>> combination output image is just a white background, with the coloured
>>> boxes on it - as in, it's again just blocked out the original image, as
>>> opposed to actually overlaying a somewhat transparent image onto it, and
>>> suppose this could be due to pallett's not matching, or something..?
>>>
>>> Anyway, let me quickly slap together a couple of tests, and will try 
>>> post
>>> a link, and source code, etc.
>>>
>>> Thanks
>>>
>>> Jacob Kruger
>>> Blind Biker
>>> Skype: BlindZA
>>> '...fate had broken his body, but not his spirit...'
>>>
>>> ----- Original Message ----- From: "Pierre Joye" <[email protected]>
>>> To: "Jacob Kruger" <[email protected]>
>>> Cc: "php-windows" <[email protected]>
>>> Sent: Friday, September 06, 2013 7:59 AM
>>> Subject: Re: [PHP-WIN] GD imagerectangle() function - background
>>> transparency?
>>>
>>>
>>> hi!
>>>
>>> On Thu, Sep 5, 2013 at 10:35 PM, Jacob Kruger <[email protected]> 
>>> wrote:
>>>>
>>>> Just wondering, if I load an existing image into an image resource, and
>>>> then draw a rectangle on it using the GD imagerectangle() function, and
>>>> specifically not using the imagefilledrectangle() function, does the 
>>>> new
>>>> rectangle/box overlay the existing image content, or just draw the
>>>> outlines thereof onto/overlaying the existing content?
>>>>
>>>> Alternatively, should I load the existing image, then use something 
>>>> like
>>>> imagecreatetruecolor() to create another image resource of the same
>>>> dimensions, fill it with an obscure colour, draw the rectangle on it, 
>>>> set
>>>> the transparency colour for that specific image resource to the obscure
>>>> colour, and then copy it over the original/existing image resource 
>>>> before
>>>> outputting/returning the combination?
>>>
>>>
>>> imagecopy supports alpha, imageoverlay lets you define the mode. But
>>> I'm not sure what kind of results you try to achieve, please put a
>>> link to an example result image with the two source images, it could
>>> help :)
>>>
>>> --
>>> Pierre
>>>
>>> @pierrejoye | http://www.libgd.org
>>>
>>>
>>> --
>>> PHP Windows Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>
>>
>> --
>> PHP Windows Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>
>
> -- 
> Pierre
>
> @pierrejoye | http://blog.thepimp.net | http://www.libgd.org
>