source: spip-zone/_squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/filtres/images_soyezcreateurs.php @ 116192

Last change on this file since 116192 was 116192, checked in by real3t@…, 18 months ago

[SoyezCréateurs?] Sécurité sur les tuiles et correction erreur sur le redimensionnement avant traitement du focus

File size: 1.7 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5// Permet de recadrer une image en la centrant sur son focus (plugin Centre Image)
6function image_focus($img, $largeur, $hauteur, $position = 'center') {
7        if (!$img) return('');
8       
9        include_spip('filtres_images_lib_mini');
10        include_spip('filtres/images_transforme');
11        $largeurimg = largeur($img);
12        $hauteurimg = largeur($img);
13        if (($largeurimg <= $largeur) AND ($hauteurimg <= $hauteur)) {
14                $img = filtrer('image_recadre', $img, $largeur, $hauteur, $position, 'transparent');
15        } else if (($largeurimg <= $largeur) OR ($hauteurimg <= $hauteur)) {
16                if ($largeurimg <= $largeur) {
17                        $img = filtrer('image_recadre', $img, "$largeurimg:$hauteur", '-', 'focus', 'transparent');
18                        $img = filtrer('image_graver', $img);
19                } else {
20                        $img = filtrer('image_recadre', $img, "$largeur:$hauteurimg", '-', 'focus', 'transparent');
21                        $img = filtrer('image_graver', $img);                   
22                }
23                $img = filtrer('image_recadre', $img, $largeur, $hauteur, $position, 'transparent');
24        } else  {
25                // On commence par réduire pour travailler sur de plus petites images
26                $img = filtrer('image_reduire', $img, 3840, 0);
27                $img = filtrer('image_graver', $img);
28                $img = filtrer('image_recadre', $img, "$largeur:$hauteur", '-', 'focus', 'transparent');
29                $img = filtrer('image_graver', $img);
30                $img = filtrer('image_reduire', $img, $largeur, $hauteur, $position, 'transparent');
31                $img = filtrer('image_graver', $img);
32                $img = filtrer('image_recadre', $img, $largeur, $hauteur, $position, 'transparent');
33        }
34       
35        // Pas la peine, c'est fait automatiquement quand c'est un vrai filtre d'image comme ici
36        // Par contre, il en faut pour les images intermédiaires !!!!
37        //$img = filtrer('image_graver', $img);
38       
39        return $img;
40}
Note: See TracBrowser for help on using the repository browser.