source: spip-zone/_plugins_/smush_images/trunk/smush_pipelines.php @ 74489

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

$im et non $source et indentation

File size: 2.7 KB
Line 
1<?php
2/**
3 * Plugin Smush
4 *
5 * Auteur :
6 * kent1 (http://www.kent1.info - kent1@arscenic.info)
7 *
8 * @package SPIP\Smushit\Pipelines
9 */
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12/**
13 * Insertion dans le pipeline post_image_filtrer (SPIP)
14 *
15 * On passe toutes les images dans le filter image_smush sauf si :
16 * -* une constante _SMUSH_INTERDIRE_AUTO est définier
17 * -* la case eviter_traitement_auto de la config est cochée
18 *
19 * @param string $flux
20 *              Le tag image (<img src...>) à réduire
21 * @return string $flux
22 *              Le nouveau tag image
23 */
24function smush_post_image_filtrer($flux) {
25        if(!function_exists('lire_config'))
26                include_spip('inc/config');
27        if((!isset($GLOBALS['meta']['smush_casse']) || $GLOBALS['meta']['smush_casse'] != 'oui') && !defined('_SMUSH_INTERDIRE_AUTO') && (lire_config('smush/eviter_traitement_auto','off') != 'on'))
28                $flux = filtrer('image_smush',$flux);
29        return $flux;
30}
31
32/**
33 * Fonction de réduction d'image
34 * Nécessite que la fonction exec() soit utilisable
35 * Nécessite certains binaires sur le serveur :
36 * -* identify : apt-get install imagemagick
37 * -* convert : apt-get install imagemagick
38 * -* pngnq : apt-get install pngnq
39 * -* pngoptim : apt-get install pngoptim
40 * -* jpegtran : apt-get install libjpeg-progs
41 *
42 * @param string $im
43 *              Le tag image (<img src...>) à réduire
44 * @return string
45 *              Le nouveau tag image
46 */
47function image_smush($im) {
48        $fonction = array('smush', func_get_args());
49        $image = _image_valeurs_trans($im,"smush",false,$fonction);
50
51        if (!$image) return("");
52
53        $im = $image["fichier"];
54        $dest = $image["fichier_dest"];
55
56        $creer = $image["creer"];
57
58        if ($creer) {
59                $format = trim(exec('identify -format %m '.$im));
60
61                if ($format == 'GIF') {
62                        $dest = $dest.'.png';
63                        exec('convert '.$im.' '.$dest);
64                        $source = $dest;
65                        $format = 'PNG';
66                }
67
68                else if ($format == 'PNG') {
69                        $nq = substr($im,0,-4).'-nq8.png';
70                        exec('pngnq '.$im.' && optipng -o5 '.$nq.' -out '.$dest,$out);
71                        if(file_exists($nq))
72                                spip_unlink($nq);
73                }
74
75                else if ($format == 'JPEG') {
76                        $fsize = filesize($im);
77                        if ($fsize < 10*1024)
78                                exec('jpegtran -copy none -optimize '.$im.' > '.$dest);
79                        else
80                                exec('jpegtran -copy none -progressive '.$im.' > '.$dest);
81                }
82        }
83        return _image_ecrire_tag($image,array('src'=>$dest));
84}
85
86/**
87 * Pipeline taches_generales_cron de Smush (SPIP)
88 *
89 * Vérifie la présence à intervalle régulier des logiciels présents
90 *
91 * @param array $taches_generales
92 *              Un array des tâches du cron de SPIP
93 * @return array $taches_generales
94 *              L'array des taches complété
95 */
96function smush_taches_generales_cron($taches_generales){
97        $taches_generales['smush_taches_generales'] = 24*60*60;
98        return $taches_generales;
99}
100?>
Note: See TracBrowser for help on using the repository browser.