Neem als voorbeeld de serverstats van T.net:

Dwars door de barchart lopen een aantal gestippelde gridlines. Deze zijn transparant: de "stippel" is zwart, maar tussen twee stippels in neemt de lijn de achtergrondkleur (wit of een kleur blauw) aan.
Ik probeer nu hetzelfde te bereiken en begon aan de volgende functie om een stippellijn te maken:
Het resultaat is echter:

Ik heb imagelinedotted() aangeroepen met de kleur wit als $col. De stippels zijn zoals verwacht, wit. De afstand tussen 2 stippels is 3 pixels, zoals opgegeven in de functiecall. Echter, de ruimte tussen de stippels wordt grijs gemaakt, terwijl ik deze graag transparant zou hebben. Wat doe ik verkeerd?
Dwars door de barchart lopen een aantal gestippelde gridlines. Deze zijn transparant: de "stippel" is zwart, maar tussen twee stippels in neemt de lijn de achtergrondkleur (wit of een kleur blauw) aan.
Ik probeer nu hetzelfde te bereiken en begon aan de volgende functie om een stippellijn te maken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // Stippellijn van (x1,y1) tot (x2,y2) met stippellengte dist en kleur col function imagelinedotted($im, $x1, $y1, $x2, $y2, $dist, $col) { $transp = imagecolortransparent($im); $style = array($col); for ($i = 0; $i < $dist; $i++) { array_push($style, $transp); } imagesetstyle($im, $style); return (int) imageline($im, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED); imagesetstyle($im, array($col)); } |
Het resultaat is echter:

Ik heb imagelinedotted() aangeroepen met de kleur wit als $col. De stippels zijn zoals verwacht, wit. De afstand tussen 2 stippels is 3 pixels, zoals opgegeven in de functiecall. Echter, de ruimte tussen de stippels wordt grijs gemaakt, terwijl ik deze graag transparant zou hebben. Wat doe ik verkeerd?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."