Re: [PHP-WIN] GD imagerectangle() function - background transparency?
[email protected] ("Jacob Kruger") Fri, 6 Sep 2013 09:39:05 +0200
| Newsgroups | php.windows |
|---|---|
| Message-ID | <43E0F695E63C418C89B1103A97BD9ECD@JacobPC> |
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
>
>