The way that imagesetthickness works with imagerectangle() is pretty strange.
<?php
imagesetthickness(1);
imagerectangle($im, 10, 10, 50, 50, $red);
?>
This will draw a 41x41 square (because gd need the bottom right pixel, inclusive. 50 should get replaced by 49). This will "work" like:
<?php
imageline($im, 10, 10, 10, 50, $red);
imageline($im, 10, 10, 50, 10, $red);
imageline($im, 50, 10, 50, 50, $red);
imageline($im, 10, 50, 50, 50, $red);
?>
The second example:
<?php
imagesetthickness(2);
imagerectangle($im, 10, 10, 50, 50, $red);
?>
This will draw a 43x43 square because the border (thickness) is set to 2. *however* this is not a "regular" border of 2 pixels around the 41x41 original square!
On the left and right, there will be a thickness of 3, while there we be a thickness of 2.
If you take the imageline example, but set the thickness before to 2, this will *almost* do the trick: the left most pixel of the square will not be drawn.
To conclude:
1) do not forget that (width, height) of drawn rectangle is (x2-x1+1, y2-y1+1)
2) thickness is bad implemented (or at least, the behavior i s not documented) on rectangle, as the left/right thickness is not the wanted one.
3) 4*imageline() should do the trick, but after "patching" the top left pixel.
imagesetthickness
(PHP 4 >= 4.0.6, PHP 5)
imagesetthickness — Modifie l'épaisseur d'un trait
Description
bool imagesetthickness
( resource $image
, int $thickness
)
imagesetthickness() modifie l'épaisseur du trait des lignes de l'image image . Cette épaisseur intervient dans les dessins de polygones, ellipses, cercles, rectangles, etc. thickness est en pixels.
Liste de paramètres
- image
-
Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().
- thickness
-
Valeurs de retour
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Notes
Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).
imagesetthickness
baldurien at bbnwn dot eu
11-Mar-2008 05:28
11-Mar-2008 05:28
ab at cd dot com
27-Jun-2007 04:05
27-Jun-2007 04:05
Note: Also, for me (working under PHP 5.0.2) this function ONLY seems to work with imageline...
