Skip to content
Extraits de code Groupes Projets

Permettre d'utiliser d'autres Image que GDImage dans les filtres image

Ouvert cerdic a demandé de fusionner refactor_images_lib vers 5.x
1 fichier
+ 24
1
Comparer les modifications
  • Côte à côte
  • En ligne
+ 24
1
@@ -587,11 +587,34 @@ function svg_filter_blur($img, $blur_width) {
*/
function svg_filter_grayscale($img, $intensity) {
$value = round(1.0 - $intensity, 2);
//$filter = "<feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\"/>";
$filter = "<feColorMatrix type=\"saturate\" values=\"$value\"/>";
return svg_apply_filter($img, $filter);
}
/**
* Filtre colorize en utilisant <filter>
* Les valeurs en entrées vont de -255 à +255
* et sont transformées en coefficient multiplicateur d'une matrice feColorMatrix pour avoir un rendu couleur semblable à GD2
* @param string $img
* @param int $red
* @param int $green
* @param int $blue
* @return bool|string
*/
function svg_filter_colorize($img, $red = 0, $green = 0, $blue = 0) {
$rgb = [$red, $green, $blue];
foreach ($rgb as &$value) {
if ($value > 0) {
$value = 1 + round(pow($value, 2) / 20, 2) / 100;
} else {
$value = 1 / (1 + round(pow(-$value, 1.5) / 4, 2) / 100);
}
}
[$red, $green, $blue] = $rgb;
$filter = "<feColorMatrix type=\"matrix\" values=\"$red 0 0 0 0 0 $green 0 0 0 0 0 $blue 0 0 0 0 0 1 0\"/>";
return svg_apply_filter($img, $filter);
}
/**
* Filtre sepia en utilisant <filter>
*
Chargement en cours