X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Ffiltres_images_lib_mini.php;fp=www%2Fecrire%2Finc%2Ffiltres_images_lib_mini.php;h=b8127c534d7baabf55b2de23b276c3251635e1ff;hp=b2e50dc60423795f01264b736f88af11a47457c3;hb=e99f0878011913365e49b30d90e496c24c301393;hpb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed diff --git a/www/ecrire/inc/filtres_images_lib_mini.php b/www/ecrire/inc/filtres_images_lib_mini.php index b2e50dc..b8127c5 100644 --- a/www/ecrire/inc/filtres_images_lib_mini.php +++ b/www/ecrire/inc/filtres_images_lib_mini.php @@ -3,7 +3,7 @@ /***************************************************************************\ * 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. * @@ -104,6 +104,18 @@ function _image_valeurs_trans($img, $effet, $forcer_format = false, $fonction_cr $source = $img; $img = ""; } + # 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)){ @@ -135,7 +147,7 @@ function _image_valeurs_trans($img, $effet, $forcer_format = false, $fonction_cr 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) @@ -310,7 +322,7 @@ function _image_gd_output($img,$valeurs, $qualite=_IMG_GD_QUALITE){ 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); } @@ -378,7 +390,9 @@ function image_graver($img){ } // 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); @@ -397,6 +411,7 @@ function image_graver($img){ $img = $img1; } } +} // http://doc.spip.org/@image_tag_changer_taille function _image_tag_changer_taille($tag,$width,$height,$style=false){ @@ -659,7 +674,7 @@ function _image_creer_vignette($valeurs, $maxWidth, $maxHeight, $process='AUTO', $retour['fichier'] = $vignette; $retour['format'] = $format; - $retour['date'] = @filemtime($vignette); + $retour['date'] = (file_exists($vignette)) ? filemtime($vignette) : 0; // renvoyer l'image return $retour;