330,13 → 330,13 |
} |
|
// Nous chercons à créer une image indéxées en sortie |
if (imageistruecolor(&$this->carte) && $this->formule_coloriage != 'legende') { |
if (imageistruecolor($this->carte) && $this->formule_coloriage != 'legende') { |
if ($this->coloriage_couleurs <= 253) { |
//imagetruecolortopalette(&$this->carte, false, ($this->coloriage_couleurs + 2));// + 2 car noir et blanc réservés. |
} else { |
// On force la création d'une palette... si cela pose problème ajouter un attribut permettant de désactiver |
// ce fonctionnement. |
imagetruecolortopalette(&$this->carte, false, 255); |
imagetruecolortopalette($this->carte, false, 255); |
} |
} |
|
353,7 → 353,7 |
unlink($fichier_image_carte); |
} |
|
imagepng(&$this->carte, $this->getCarteFichier()); |
imagepng($this->carte, $this->getCarteFichier()); |
return true; |
} |
|
505,6 → 505,11 |
|
// Nous attribuons les couleurs à chaque zone géographique |
foreach ($this->getCarteZones() as $cle => $zg) { |
if ($this->getModeDebug() && !isset($zg['rvb_fond'])) { |
$e = "La zone ".print_r($zg, true).") ne possède pas de clé 'rvb_fond'."; |
trigger_error($e, E_USER_WARNING); |
continue; |
} |
if (isset($this->coloriage_tableau_frequence[$zg['info_nombre']])) { |
$this->carte_correspondance_couleurs[$zg['rvb_fond']] = $this->coloriage_tableau_frequence[$zg['info_nombre']]; |
} else { |
540,7 → 545,7 |
} |
|
private function colorierCarte() { |
if (imageistruecolor(&$this->carte)) { |
if (imageistruecolor($this->carte)) { |
//+--------------------------------------------------------------------------------------------------------+ |
// Remplacement des couleurs sur la carte en mode vraies couleurs (RGB) |
$this->colorierCarteModeVraiCouleur(); |
553,14 → 558,14 |
|
private function colorierCarteModeVraiCouleur() { |
// Nous commençons le rempalcement des couleurs sur la carte de fond. |
$hauteur = imagesy(&$this->carte); |
$largeur = imagesx(&$this->carte); |
$hauteur = imagesy($this->carte); |
$largeur = imagesx($this->carte); |
|
// Tableau contenant les couleurs traitées, pour éviter de traiter plusieurs fois la même couleur |
$tab_rvb_ok = array(); |
for ($x = 0; $x < $largeur; $x++) { |
for ($y = 0; $y < $hauteur; $y++) { |
$rvb = ImageColorAt(&$this->carte, $x, $y); |
$rvb = ImageColorAt($this->carte, $x, $y); |
if (!isset($tab_rvb_ok[$rvb])) { |
// Récupération de la couleur rvb au format xxx-xxx-xxx |
$cle = (($rvb >> 16) & 0xFF).'-'.(($rvb >> 8) & 0xFF).'-'.($rvb & 0xFF); |
575,10 → 580,10 |
$rvb_final = $rouge<<16 | $vert<<8 | $bleu; |
} |
// Si le nombre de couleurs sur la carte finale est infèrieur à 255 nous créons une image indexée |
imagefill(&$this->carte, $x, $y, $rvb_final); |
imagefill($this->carte, $x, $y, $rvb_final); |
} else { |
$rvb_final = '128'<<16 | '128'<<8 | '128'; |
imagefill(&$this->carte, $x, $y, $rvb_final); |
imagefill($this->carte, $x, $y, $rvb_final); |
} |
// Nous ajoutons la couleur ajoutée à la carte dans le tableau des couleurs traitées |
$tab_rvb_ok[$rvb_final] = true; |
607,7 → 612,7 |
list($rouge, $vert, $bleu) = explode('-', $this->carte_correspondance_couleurs[$zg['rvb_fond']]); |
} |
if (isset($zg['index'])) { |
imagecolorset(&$this->carte, $zg['index'], $rouge, $vert, $bleu); |
imagecolorset($this->carte, $zg['index'], $rouge, $vert, $bleu); |
} else if ($this->getModeDebug()) { |
$e = "La zone '{$zg['nom']}' n'est pas présente sur la carte."; |
trigger_error($e, E_USER_WARNING); |
Property changes: |
Added: svnkit:entry:sha1-checksum |
+1b417d218f6840ed04efac7db592772c62f0020d |
\ No newline at end of property |