Changeset 101215 in spip-zone


Ignore:
Timestamp:
Dec 19, 2016, 6:21:45 PM (3 years ago)
Author:
kent1@…
Message:

Passer par le pipeline image_preparer_filtre en cas de fonctionnement juste derrière une copie_locale()

Location:
_plugins_/medias_identifier/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/medias_identifier/trunk/medias_identifier_pipelines.php

    r101214 r101215  
    7474function medias_identifier_renseigner_document_distant($flux) {
    7575        $a = recuperer_infos_distantes($flux['source']);
    76         if (isset($a['extension']) and in_array($a['extension'],array('jpg','png','gif'))
    77                 and preg_match(','._DIR_IMG.',',$a['fichier'])) {
     76        if (isset($a['extension']) and in_array($a['extension'], array('jpg','png','gif'))
     77                and preg_match(','._DIR_IMG.',', $a['fichier'])) {
    7878                include_spip('inc/documents');
    7979                $format = false;
     
    119119        return $flux;
    120120}
     121
     122
     123function medias_identifier_image_preparer_filtre($flux) {
     124        if (preg_match('/distant/', $flux['args']['img'])) {
     125                if (in_array($flux['data']['format_source'], array('jpg', 'png', 'gif'))) {
     126                        $format = false;
     127                        $fichier = extraire_attribut($flux['data']['tag'], 'src');
     128                        if (extension_loaded('imagick')) {
     129                                $Imagick = new Imagick($fichier);
     130                                $format = $Imagick->getImageFormat();
     131                        }
     132                        $new_extension = false;
     133                        if ($format) {
     134                                switch ($format) {
     135                                        case 'PNG':
     136                                                $new_extension = 'png';
     137                                                $fonction_imagecreatefrom = '_imagecreatefrompng';
     138                                                $fonction_image = '_image_imagepng';
     139                                                break;
     140                                        case 'JPEG':
     141                                                $new_extension = 'jpg';
     142                                                $fonction_imagecreatefrom = '_imagecreatefromjpeg';
     143                                                $fonction_image = '_image_imagejpg';
     144                                                break;
     145                                        case 'GIF':
     146                                                $new_extension = 'gif';
     147                                                $fonction_imagecreatefrom = '_imagecreatefromgif';
     148                                                $fonction_image = '_image_imagegif';
     149                                                break;
     150                                }
     151                                if ($new_extension and $new_extension != $flux['data']['format_source']) {
     152                                        $flux['data']['fonction_imagecreatefrom'] = $fonction_imagecreatefrom;
     153                                        $flux['data']['fonction_image'] = $fonction_image;
     154                                        $flux['data']['format_source'] = $new_extension;
     155                                        $flux['data']['format_dest'] = $new_extension;
     156                                        $flux['data']['creer'] = true;
     157                                        $flux['data']['fichier_dest'] = substr($flux['data']['fichier_dest'], 0, strrpos($flux['data']['fichier_dest'], '.')).
     158                                                '.'.$new_extension;
     159                                        spip_log($flux, 'test.'._LOG_ERREUR);
     160                                }
     161                        }
     162                }
     163        }
     164        return $flux;
     165}
  • _plugins_/medias_identifier/trunk/paquet.xml

    r101214 r101215  
    1818        <pipeline nom="renseigner_document" inclure="medias_identifier_pipelines.php" />
    1919        <pipeline nom="renseigner_document_distant" inclure="medias_identifier_pipelines.php" />
     20        <pipeline nom="image_preparer_filtre" inclure="medias_identifier_pipelines.php" />
    2021
    2122        <necessite nom="medias" compatibilite="[2.7.30;[" />
Note: See TracChangeset for help on using the changeset viewer.