Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 262 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 262 Rev 289
Line 1... Line 1...
1
<?php
1
<?php
Line 2... Line 2...
2
 
2
 
Line 3... Line 3...
3
class OdsImageEspece extends JrestService {
3
class OdsImageEspece extends JRestService {
4
	
4
	
Line 5... Line 5...
5
	private $droits = 0755;
5
	private $droits = 0755;
6
	const PREFIXE = 'get';
-
 
7
 
6
	const PREFIXE = 'get';
8
	public function OdsImageEspece($config) {
7
 
Line 9... Line 8...
9
 
8
	public function OdsImageEspece($config) {
10
		$this->config=$config;
9
		$this->config=$config;
Line 31... Line 30...
31
        }
30
        }
Line 32... Line 31...
32
       
31
       
33
        // Envoi sur la sortie standard
32
        // Envoi sur la sortie standard
34
        echo 'OK';
33
        echo 'OK';
-
 
34
    }
-
 
35
    
-
 
36
    /**
-
 
37
     * 
-
 
38
     * Méthode appelée avec une requête de type POST.
-
 
39
     */
-
 
40
    public function createElement($params) {  
-
 
41
		// fonction devant uniquement être appelée depuis le serveur
-
 
42
    	// lui-même, cad par l'application de saisie
-
 
43
    	$controle = new ControleUtilisateur($this->config);
-
 
44
    	$controle->controleAppelIpAutorisee();
-
 
45
    	
-
 
46
    	$chemin_temp = $params['chemin'];
-
 
47
    	$nom_espece = $params['nom_fichier'];
-
 
48
    	$credits = $params['credits'];
-
 
49
    	
-
 
50
    	$chemin_image_final = $this->stockerFichierOriginal($nom_espece, $chemin_temp);
-
 
51
    	$chemin_credits = $this->stockerCredits($nom_espece, $credits);
-
 
52
    	
-
 
53
    	$this->creerMiniatures($nom_espece.'.jpg', $chemin_image_final);
-
 
54
    	
-
 
55
    	echo json_encode('ok');
-
 
56
    }
-
 
57
    
-
 
58
    private function stockerFichierOriginal($nom_espece, $chemin_temp) {
-
 
59
    	$dossier = $this->config['appli']['chemin_stockage_images_especes'];
-
 
60
    	$chemin_dest = $dossier.'/'.$nom_espece.'.jpg';
-
 
61
    	copy($chemin_temp, $chemin_dest);
-
 
62
    	
-
 
63
    	return $chemin_dest;
-
 
64
    }
-
 
65
    
-
 
66
 	private function stockerCredits($nom_espece, $credits) {
-
 
67
 		$dossier = $this->config['appli']['chemin_stockage_images_especes'];
-
 
68
 		$chemin_dest = $dossier.'/'.$nom_espece.'.txt';
-
 
69
 		file_put_contents($chemin_dest, $credits);
-
 
70
 	}
-
 
71
 	
-
 
72
 	public function creerMiniatures($nom_fichier, $chemin) {
-
 
73
 		$formats = array('CXS','XS','S','M');
-
 
74
 		$infos_image_originale = $this->obtenirImageEtInfosPourChemin($chemin);
-
 
75
 		
-
 
76
 		// creation de miniatures pour chacuns des formats définis
-
 
77
 		foreach($formats as $format) {
-
 
78
 			$this->creerEtStockerMiniatureFichierImageSelonFormat($nom_fichier, $infos_image_originale, $format);
-
 
79
 		}
Line 35... Line 80...
35
    }
80
 	}
Line 36... Line 81...
36
	
81
	
Line 59... Line 104...
59
		    	    	
104
		    	    	
Line 60... Line 105...
60
		    $nom_fichier = $fichier_ou_dossier->getFilename();
105
		    $nom_fichier = $fichier_ou_dossier->getFilename();
Line 61... Line 106...
61
		    						
106
		    						
62
			$infos_image_originale = $this->obtenirImageEtInfosPourChemin($fichier_ou_dossier->getPathname());
107
			$infos_image_originale = $this->obtenirImageEtInfosPourChemin($fichier_ou_dossier->getPathname());
63
				
108
				
64
		    	// creation de miniatures pour chacuns des formats définis
109
		    // creation de miniatures pour chacuns des formats définis
65
			foreach($formats as $format) {
110
			foreach($formats as $format) {
66
					$this->creerEtStockerMiniatureFichierImageSelonFormat($nom_fichier, $infos_image_originale, $format);
111
				$this->creerEtStockerMiniatureFichierImageSelonFormat($nom_fichier, $infos_image_originale, $format);
Line 67... Line 112...
67
			}
112
			}
Line 99... Line 144...
99
		$image_redimensionnee = imagecreatetruecolor($largeur_redimension, $hauteur_redimension);
144
		$image_redimensionnee = imagecreatetruecolor($largeur_redimension, $hauteur_redimension);
Line 100... Line 145...
100
		
145
		
101
		imagecopyresampled($image_redimensionnee, 
146
		imagecopyresampled($image_redimensionnee, 
102
						$infos_image_originale['image'], 
147
						$infos_image_originale['image'], 
103
						0, 0, 
148
						0, 0, 
104
						$debut_largeur_a_copier, 
149
						0, 
105
						$debut_hauteur_a_copier, 
150
						0, 
106
						$largeur_redimension, 
151
						$largeur_redimension, 
107
						$hauteur_redimension, 
152
						$hauteur_redimension, 
108
						$infos_image_originale['largeur'], 
153
						$infos_image_originale['largeur'], 
109
						$infos_image_originale['hauteur']
154
						$infos_image_originale['hauteur']