39,9 → 39,11 |
protected $valeurs_en_pourcentage = array(); |
protected $dom; |
protected $largeurSVG = "500"; |
protected $hauteurSVG; |
protected $valeurs_champs; |
|
|
|
public function consulter($ressources, $parametres) { |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
147,7 → 149,13 |
private function definirFormat() { |
if (isset($this->parametres['retour.format']) ){ |
if (preg_match("/^[0-9]+$/", $this->parametres['retour.format'])){ |
$this->largeurSVG = $this->parametres['retour.format']; |
if ($this->parametres['retour.format'] > 0) { |
$this->largeurSVG = $this->parametres['retour.format']; |
} else { |
$erreur = "Erreur : valeur pour retour.format négative ou égale à 0."; |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE; |
throw new Exception($erreur, $code); |
} |
}else { |
$erreur = "Erreur : valeur inconnue. Entrez la largeur voulue (en pixels) pour le paramètre retour.format."; |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE; |
265,7 → 273,24 |
} |
} |
|
public function donnerHauteur($ancienne_largeur, $ancienne_hauteur) { |
$nouvelle_largeur = $this->largeurSVG; |
$ancienne_largeur = str_replace('px','',$ancienne_largeur); |
$ancienne_hauteur = str_replace('px','',$ancienne_hauteur); |
$rapport = $nouvelle_largeur / $ancienne_largeur ; |
$nouvelle_hauteur = $ancienne_hauteur * $rapport; |
$this->hauteurSVG = $nouvelle_hauteur; |
} |
|
public function ajusterFormatSVG(){ |
$svg = $this->dom->getElementsByTagName("svg")->item(0); |
$largeur = $svg->getAttribute('width'); |
$hauteur = $svg->getAttribute('height'); |
$this->donnerHauteur($largeur , $hauteur); |
$svg->setAttribute('width',$this->largeurSVG.'px'); |
$svg->setAttribute('height',$this->hauteurSVG.'px'); |
|
} |
|
public function genererSVG(){ |
$svg = null; |
274,7 → 299,7 |
$fichierSvg = $this->cheminGraphBase."".$this->nomGraphique.".svg"; |
$this->dom->load($fichierSvg); |
$this->changerValeursSVG(); |
$svg = $this->dom->saveXML(); |
$svg = $this->dom->saveXML(); |
return $svg; |
} |
|
330,7 → 355,7 |
$convertisseur->setBackgroundColor(new ImagickPixel('#F8F8F8')); |
$convertisseur->readImageBlob($svg); |
$convertisseur->setImageFormat('png32'); |
$convertisseur->resizeImage($this->largeurSVG, 0 , imagick::FILTER_LANCZOS, 0, true); |
$convertisseur->resizeImage($this->largeurSVG,$this->hauteurSVG, imagick::FILTER_LANCZOS, 0, true); |
$png = $convertisseur->getImageBlob(); |
$convertisseur->clear(); |
$convertisseur->destroy(); |
342,7 → 367,8 |
$fichierPng = $this->config['cache']['stockageChemin']."".$idFichier.'.png'; |
$fichierSvg = $this->config['cache']['stockageChemin']."".$idFichier.'.svg'; |
file_put_contents($fichierSvg, $svg); |
$commande = "rsvg-convert $fichierSvg -b #F8F8F8 -w $this->largeurSVG -a -o $fichierPng"; |
$commande = "rsvg-convert $fichierSvg -w ".$this->largeurSVG ." -h ".$this->hauteurSVG ." -o $fichierPng"; |
//echo $commande; exit; |
$rsvg = exec($commande); |
$this->indexerFichierPng($fichierPng); |
$png = file_get_contents($fichierPng); |