Skip to content
Extraits de code Groupes Projets
Valider d8eddef0 rédigé par cedric@yterium.com's avatar cedric@yterium.com
Parcourir les fichiers

utiliser des SVG <filter> pour image_flou, image_nb et image_sepia, ce qui...

utiliser des SVG <filter> pour image_flou, image_nb et image_sepia, ce qui permet d'avoir le support dans Chrome et Safari itou
parent 111c68e9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -1105,20 +1105,9 @@ function image_nb($im, $val_r = 299, $val_g = 587, $val_b = 114) { ...@@ -1105,20 +1105,9 @@ function image_nb($im, $val_r = 299, $val_g = 587, $val_b = 114) {
if ($creer) { if ($creer) {
if ($image['format_source']==='svg'){ if ($image['format_source']==='svg'){
$a = [ #$svg = svg_transformer($im, ['style' => "filter:grayscale(100%);"]); // ne semble pas fonctionner dans Safari+Chrome
'style' => "filter:grayscale(100%);" $svg = svg_filter_grayscale($im, 1.0);
];
$svg = svg_transformer($im, $a);
_image_gd_output($svg, $image); _image_gd_output($svg, $image);
/*
Alternative mais fonctionne moins bien
$svg = svg_filtrer_couleurs($im, function($c) use ($val_r, $val_g, $val_b) {
$c = _couleur_hex_to_dec($c);
$g = round(($val_r * $c['red'] / 1000) + ($val_g * $c['green'] / 1000) + ($val_b * $c['blue'] / 1000));
$g = max(0,min($g, 254));
return '#' . _couleur_dec_to_hex($g, $g, $g);
});
*/
} }
else { else {
// Creation de l'image en deux temps // Creation de l'image en deux temps
...@@ -1204,10 +1193,8 @@ function image_flou($im, $niveau = 3) { ...@@ -1204,10 +1193,8 @@ function image_flou($im, $niveau = 3) {
if ($creer) { if ($creer) {
if ($image['format_source']==='svg'){ if ($image['format_source']==='svg'){
$svg = svg_recadrer($im, $x_i + $niveau, $y_i + $niveau, -round($niveau / 2), -round($niveau / 2)); $svg = svg_recadrer($im, $x_i + $niveau, $y_i + $niveau, -round($niveau / 2), -round($niveau / 2));
$a = [ #$svg = svg_transformer($svg, ['style' => "filter:blur({$niveau}px);"]); // ne semble pas supporte par safari+chrome
'style' => "filter:blur({$niveau}px);" $svg = svg_filter_blur($svg, $niveau);
];
$svg = svg_transformer($svg, $a);
_image_gd_output($svg, $image); _image_gd_output($svg, $image);
} }
else { else {
...@@ -1761,11 +1748,8 @@ function image_sepia($im, $rgb = "896f5e") { ...@@ -1761,11 +1748,8 @@ function image_sepia($im, $rgb = "896f5e") {
if ($creer) { if ($creer) {
if ($image['format_source']==='svg'){ if ($image['format_source']==='svg'){
$a = [ #$svg = svg_transformer($im, ['style' => "filter:sepia(1);"]); // ne fonctionne pas dans Chrome+Safari
'style' => "filter:sepia(1);" $svg = svg_filter_sepia($im, 1);
//'filter' => "sepia(100%)" // a priori equivalent
];
$svg = svg_transformer($im, $a);
_image_gd_output($svg, $image); _image_gd_output($svg, $image);
} }
else { else {
......
<paquet <paquet
prefix="images" prefix="images"
categorie="multimedia" categorie="multimedia"
version="2.2.0" version="2.2.1"
etat="stable" etat="stable"
compatibilite="[3.3.0-dev;3.3.*]" compatibilite="[3.3.0-dev;3.3.*]"
logo="images/image_filtre-32.png" logo="images/image_filtre-32.png"
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter