Carnet Wiki

action supprimerexif

Version 2 — 3 weeks ago JLuc

Vu l’incapacité de fonctions clés de retouche image de SPIP avant la version 4.4.18 (notamment image_reduire et les boutons de rotation) à gérer correctement les exifs de rotation, j’avais défini un bouton qui permettait de supprimer les exifs, ce qui permettait ensuite de la redresser correctement avec des boutons de rotation.

Voici cette action, appelable par un #BOUTON_ACTION

Fichier actions/supprimerexif.php à créer dans votre plugin ou dossier squelettes avec le contenu suivant :

php


<?php


/***************************************************************************\
 *  SPIP, Système de publication pour l'internet                           *
 *                                                                         *
 *  Copyright © avec tendresse depuis 2001                                 *
 *  Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James  *
 *
 * Et ce fichier : JLuc
 *                                                                         *
 *  Ce programme est un logiciel libre distribué sous licence GNU/GPL.     *
 *  Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne.   *
\***************************************************************************/


if (!defined('_ECRIRE_INC_VERSION')) {
	return;
}


/**
 * Supprimer l'exif d'un document
 *
 * @param int $id_document
 * @return void
 */
function action_supprimerexif_dist($id_document = null) {
	if (is_null($id_document)) {
		$securiser_action = charger_fonction('securiser_action', 'inc');
		$arg = $securiser_action();


if (!preg_match(',^\W*(\d+)$,', $arg, $r)) {
			spip_log("action_supprimerexif_dist $arg pas compris");
		} else {
			$id_document = (int)$r[1];
		}
	}
	if ($id_document && autoriser('modifier', 'document', $id_document)) {
		action_supprimerexif_post($id_document);
	}
}


/**
 * @param int $id_document
 * @return
 */
function action_supprimerexif_post($id_document) {
	$row = sql_fetsel('fichier, extension', 'spip_documents', 'id_document=' . intval($id_document));
	if (!$row) {
		return;
	}
	include_spip('action/tourner');
	if (in_array($row['extension'],  ['jpg', 'png'])) {
		spip_log("action_supprimerexif_post($id_document) et c'est un JPG : ".$row['fichier'], 'supprimerexif'._LOG_DEBUG);
		include_spip('lib/images.inc');
		tresutile_redresse_image ( 'IMG/'.$row['fichier'], $row['extension']);
	}
	else {
		spip_log("action_supprimerexif_post($id_document) et ce n'est PAS un JPG ou un png mais un {$row['extension']} : ".$row['fichier'], 'supprimerexif'._LOG_ERREUR);
		tourner_selon_exif_orientation($id_document, $row['fichier']); 
		/* FIXME ça suffit/marche pas */
	}
}


Retour à la version courante

Toutes les versions