Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 801 → Rev 807

/trunk/services/modules/0.1/commun/Commun.php
452,5 → 452,52
}
return $this->RestClient;
}
 
 
/**
* Génération de fichiers pour les cartes
*/
static function convertirEnPNGAvecRsvg($idFichier, $chemin, $svg) {
// test répertoire de cache
if(!is_dir($chemin)) {
mkdir($chemin, 0777, true);
}
if(!is_dir($chemin)) {
error_log(__FILE__ . ": can't create cache {$chemin}");
return NULL;
}
 
// test présence du binaire de conversion (rsvg)
/*
// `which` no possible using safe-mode...
$i = $s = NULL;
exec('which rsvg-convert', $s, $i);
if($i != 0) {
error_log(__FILE__ . ": no rsvg-convert binary");
return NULL;
}
*/
// conversion svg => png
$fichierPng = $chemin.$idFichier.'.png';
$fichierSvg = $chemin.$idFichier.'.svg';
file_put_contents($fichierSvg, $svg);
$i = $s = NULL;
$rsvg = exec("rsvg-convert $fichierSvg -d 75 -p 75 -o $fichierPng", $s, $i);
if($i != 0) {
error_log(__FILE__ . ": `rsvg-convert $fichierSvg -o $fichierPng` returned $i: " . implode(', ', $s));
return NULL;
}
 
self::indexerFichierPng($fichierPng);
return file_get_contents($fichierPng);
}
 
static function indexerFichierPng($fichierPng) {
$img = imagecreatefrompng($fichierPng);
imagetruecolortopalette($img, false, 32);
$blanc = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 0, 0, $blanc);
imagepng($img, $fichierPng, 9, PNG_ALL_FILTERS);
}
}
?>