Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 511 → Rev 512

/trunk/services/modules/0.1/baseflor/CommunGraphiques.php
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);