source: spip-zone/_plugins_/photospip/trunk/photospip_fonctions.php @ 61602

Last change on this file since 61602 was 61602, checked in by kent1@…, 9 years ago

Remettre la taille correctement lorsque l'on revient à une ancienne version

Si les paramètres de filtres sont nuls... on ne les passe pas du tout pour garder ceux par défaut

Correction de petites erreurs

File size: 3.9 KB
Line 
1<?php
2/**
3 * Photospip
4 * Un Photoshop-light dans spip?
5 *
6 * Auteurs :
7 * kent1 (kent1@arscenic.info -  http://www.kent1.info)
8 *
9 * © 2008-2012 - Distribue sous licence GNU/GPL
10 * Pour plus de details voir le fichier COPYING.txt
11 *
12 */
13
14if (!defined("_ECRIRE_INC_VERSION")) return;
15/*
16
17@argument balise : balise sur lequel est appliquer le filtre appliquer_filtre
18@argument filtre : nom du filtre à appliquer
19@param : paramètres pour le filtre
20
21@return : retourn la balise traité par filtre si le filtre existe autrement la balise appelante non traitée
22
23*/
24
25function photospip_appliquer_filtre($balise, $filtre,$param1=NULL,$param2=NULL,$param3=NULL) {
26        $filtre = chercher_filtre($filtre);
27        spip_log("On a trouvé $filtre",'photospip');
28        if (function_exists($filtre)){
29                spip_log("$filtre($balise,$param1,$param2,$param3);","photospip");
30                if ($param1){
31                        return $filtre($balise,$param1,$param2,$param3);
32                        spip_log("$filtre($balise,$param1,$param2,$param3);","photospip");
33                }
34                else{
35                        return $filtre($balise);
36                        spip_log("$filtre($balise,$param1,$param2,$param3);","photospip");
37                }
38        } else {
39                return $balise;
40        }
41}
42
43/////////////////////////////////////////////////////////////////////
44//
45// Appliquer le filtre image
46//
47/////////////////////////////////////////////////////////////////////
48
49function photospipfiltre ($src, $dest, $filtre,$params){
50        spip_log("src = $src","photospip");
51        spip_log("dest = $dest","photospip");
52        spip_log("filtre = $filtre","photospip");
53        spip_log("params","photospip");
54        spip_log($params,"photospip");
55       
56        include_spip('inc/filtres');
57        include_spip('public/parametrer');
58        $src_img = '';
59       
60        $filtre = chercher_filtre($filtre);
61        spip_log($filtre,'photospip');
62        if (function_exists($filtre)){
63                if(is_array($params)){
64                        if($filtre == 'image_recadre'){
65                                $dst_img = $filtre($src,$params[0],$params[1],$params[2]);
66                                spip_log("$filtre($src,$params[0],$params[1],$params[2]);","photospip");
67                        }else if(in_array($filtre, array('image_passe_partout','image_reduire'))){
68                                $dst_img = $filtre($src,$params[0],$params[1]);
69                                spip_log("$filtre($src,$params[0],$params[1]);","photospip");
70                        }
71                        else if($params[0] && !is_null($params[0])){
72                                spip_log("$filtre($src,".$params[0].")","photospip");
73                                $dst_img = $filtre($src,$params[0]);           
74                        }else{
75                                spip_log("$filtre($src)","photospip");
76                                $dst_img = $filtre($src);
77                        }
78                }
79                else{
80                        $dst_img = $filtre($src);
81                }
82                $dst_img = extraire_attribut($dst_img,'src');
83                spip_log("après le filtre $filtre dst_img = $dst_img","photospip");             
84        }else{
85                spip_log('le filtre n existe pas','photospip');
86                return false;
87        }
88        spip_log($dst_img,'photospip');
89        if (preg_match(',^(.*)\?date=(\d+).([^.]+)$,', $dst_img, $match)) {
90                $dst_img = $match[1];
91        }
92        //$dst_img = preg_replace(',\?date=\d+$,','', $dst_img);
93        if(preg_match("/\.(png|gif|jpe?g|bmp)$/i", $src, $regs)) {
94                switch($regs[1]) {
95                        case 'png':
96                          if (function_exists('ImageCreateFromPNG')) {
97                                $src_img=ImageCreateFromPNG($dst_img);
98                                spip_log("creation png from $dst_img","photospip");
99                                $save = 'imagepng';
100                          }
101                          break;
102                        case 'gif':
103                          if (function_exists('ImageCreateFromGIF')) {
104                                $src_img=ImageCreateFromGIF($dst_img);
105                                $save = 'imagegif';
106                          }
107                          break;
108                        case 'jpeg':
109                        case 'jpg':
110                          if (function_exists('ImageCreateFromJPEG')) {
111                                $src_img=ImageCreateFromJPEG($dst_img);
112                                spip_log("creation jpg from $dst_img","photospip");
113                                $save = 'Imagejpeg';
114                          }
115                          break;
116                        case 'bmp':
117                          if (function_exists('ImageCreateFromWBMP')) {
118                                $src_img=@ImageCreateFromWBMP($dst_img);
119                                $save = 'imagewbmp';
120                          }
121                          break;
122                }
123        }
124
125        //if (!$src_img) {
126        //      spip_log("photospipfiltre : image non lue, $src","photospip");
127        //      return false;
128        //}
129        //spip_log($src_img,'photospip');
130
131        ImageInterlace($src_img,0);
132
133        $save($src_img,$dest);
134        $size=getimagesize($dest);
135        spip_log($size,'photospip');
136        if (!($size[0] * $size[1])) return false;
137       
138        spip_log("dest $dest","photospip");
139        return true;
140}
141?>
Note: See TracBrowser for help on using the repository browser.