1 | <?php |
---|
2 | |
---|
3 | |
---|
4 | function centre_image($fichier) { |
---|
5 | static $spip_centre_image = array(); |
---|
6 | |
---|
7 | // nettoyer le fichier (qui peut être dans un <img> ou qui peut être daté) |
---|
8 | if (preg_match("/src\=/", $fichier)) $fichier = extraire_attribut($fichier, "src"); |
---|
9 | $fichier = preg_replace(",\?[0-9]*$,", "", $fichier); |
---|
10 | |
---|
11 | // on mémorise le résultat -> don |
---|
12 | if ($spip_centre_image["$fichier"]) return $spip_centre_image["$fichier"]; |
---|
13 | |
---|
14 | if (function_exists("imagefilter") && file_exists($fichier)) { |
---|
15 | $md5 = md5($fichier); |
---|
16 | $l1 = substr($md5, 0, 1 ); |
---|
17 | $l2 = substr($md5, 1, 1); |
---|
18 | |
---|
19 | $cache = sous_repertoire(_DIR_VAR, "cache-centre-image"); |
---|
20 | $cache = sous_repertoire($cache, $l1); |
---|
21 | $cache = sous_repertoire($cache, $l2); |
---|
22 | |
---|
23 | $forcer = sous_repertoire(_DIR_IMG, "cache-centre-image"); |
---|
24 | |
---|
25 | $fichier_json = "$cache$md5.json"; |
---|
26 | |
---|
27 | if (file_exists($fichier_json) and filemtime($fichier_json) > filemtime($fichier) and 1==2) { |
---|
28 | $res = json_decode(file_get_contents($fichier_json),TRUE); |
---|
29 | } else { |
---|
30 | |
---|
31 | if (preg_match(",\.(gif|jpe?g|png)($|[?]),i", $fichier, $regs)) { |
---|
32 | include_spip('inc/centre_image_lib'); |
---|
33 | include_spip('inc/filtres_images_lib_mini'); |
---|
34 | $terminaison = strtolower($regs[1]); |
---|
35 | $terminaison = str_replace("jpg", "jpeg", $terminaison); |
---|
36 | $fonction_imagecreatefrom = "_imagecreatefrom".$terminaison; |
---|
37 | |
---|
38 | $img = $fonction_imagecreatefrom($fichier); |
---|
39 | $cropper = new _centre_image($img); |
---|
40 | $res = $cropper->find_focus(); |
---|
41 | imagedestroy($img); |
---|
42 | } |
---|
43 | |
---|
44 | file_put_contents($fichier_json, json_encode($res,TRUE)); |
---|
45 | } |
---|
46 | } else { |
---|
47 | $res = array("x" => 0.5, "y" => 0.5); |
---|
48 | } |
---|
49 | |
---|
50 | $spip_centre_image["$fichier"] = $res; |
---|
51 | return $res; |
---|
52 | } |
---|
53 | |
---|
54 | function centre_image_x($fichier) { |
---|
55 | $res = centre_image($fichier); |
---|
56 | return $res["x"]; |
---|
57 | } |
---|
58 | function centre_image_y($fichier) { |
---|
59 | $res = centre_image($fichier); |
---|
60 | return $res["y"]; |
---|
61 | } |
---|