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

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

[SoyezCréateurs?] Les tuiles sont lourdes à calculer et peuvent planter une page. On tente de déporter leur calcul individuellement

File size: 1.8 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 à 2 fois la taille finale pour travailler sur de plus petites images
26                $img = filtrer('image_reduire', $img, $largeur*2, $hauteur*2, $position, 'transparent');
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.