/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2011 *
+ * Copyright (c) 2001-2014 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
$source = $img;
$img = "<img src='$source' />";
}
+ # gerer img src="data:....base64"
+ else if (preg_match('@^data:image/(jpe?g|png|gif);base64,(.*)$@isS', $source, $regs)) {
+ $local = sous_repertoire(_DIR_VAR,'image-data').md5($regs[2]).'.'.str_replace('jpeg', 'jpg', $regs[1]);
+ if (!file_exists($local)) {
+ ecrire_fichier($local, base64_decode($regs[2]));
+ }
+ $source = $local;
+ $img = inserer_attribut($img, 'src', $source);
+ # eviter les mauvaises surprises lors de conversions de format
+ $img = inserer_attribut($img, 'width', '');
+ $img = inserer_attribut($img, 'height', '');
+ }
// les protocoles web prennent au moins 3 lettres
if (preg_match(';^(\w{3,7}://);', $source)){
if (@file_exists($f = $fichier)){
list ($ret["hauteur"],$ret["largeur"]) = taille_image($img);
- $date_src = @filemtime($f);
+ $date_src = filemtime($f);
}
elseif (@file_exists($f = "$fichier.src")
AND lire_fichier($f,$valeurs)
if (@file_exists($valeurs['fichier_dest'])){
// dans tous les cas mettre a jour la taille de l'image finale
list ($valeurs["hauteur_dest"],$valeurs["largeur_dest"]) = taille_image($valeurs['fichier_dest']);
- $valeurs['date'] = @filemtime($valeurs['fichier_dest']); // pour la retrouver apres disparition
+ $valeurs['date'] = filemtime($valeurs['fichier_dest']); // pour la retrouver apres disparition
ecrire_fichier($valeurs['fichier_dest'].'.src',serialize($valeurs),true);
}
}
// Transforme une image a palette indexee (256 couleurs max) en "vraies" couleurs RGB
+// Existe seulement pour compatibilite avec PHP < 5.5
// http://doc.spip.org/@imagepalettetotruecolor
+if (!function_exists("imagepalettetotruecolor")) {
function imagepalettetotruecolor(&$img) {
if ($img AND !imageistruecolor($img) AND function_exists('imagecreatetruecolor')) {
$w = imagesx($img);
$img = $img1;
}
}
+}
// http://doc.spip.org/@image_tag_changer_taille
function _image_tag_changer_taille($tag,$width,$height,$style=false){
$retour['fichier'] = $vignette;
$retour['format'] = $format;
- $retour['date'] = @filemtime($vignette);
+ $retour['date'] = (file_exists($vignette)) ? filemtime($vignette) : 0;
// renvoyer l'image
return $retour;