Subversion Repositories eFlore/Applications.cel

Rev

Rev 798 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 798 Rev 1071
Line 1... Line 1...
1
<?php
1
<?php
2
/**
2
/**
3
 * Classe d'extraction de metadonnées afin de les mettre dans 
3
 * Classe d'extraction de metadonnées afin de les mettre dans
4
 * un tableau au format du cel
4
 * un tableau au format du cel
5
 * Encodage en entrée : utf8
5
 * Encodage en entrée : utf8
6
 * Encodage en sortie : utf8
6
 * Encodage en sortie : utf8
7
 *
7
 *
8
 * @author Aurélien PERONNET <aurelien@tela-botanica.org>
8
 * @author Aurélien PERONNET <aurelien@tela-botanica.org>
Line 12... Line 12...
12
 */
12
 */
13
class ExtracteurMetadonnees {
13
class ExtracteurMetadonnees {
Line 14... Line 14...
14
 
14
 
15
	 public function extraireMetadonnees($chemin_fichier)
15
	 public function extraireMetadonnees($chemin_fichier)
16
	 {
16
	 {
17
	 
17
 
18
		$iptc = $this->extraireIptc($chemin_fichier) ;
18
		$iptc = $this->extraireIptc($chemin_fichier) ;
19
		$exif = $this->extraireExif($chemin_fichier) ;
19
		$exif = $this->extraireExif($chemin_fichier) ;
20
		
20
 
21
		$meta = array_merge($exif,$iptc);
21
		$meta = array_merge($exif,$iptc);
22
		
22
 
23
		$this->initialiserSectionsSupplementaires(&$meta) ;
23
		$this->initialiserSectionsSupplementaires($meta) ;
24
		
24
 
25
		return $meta ;
25
		return $meta ;
26
	 }
26
	 }
27
	 
27
 
28
	/**
28
	/**
29
	* Extraction des metadonnées exif 
29
	* Extraction des metadonnées exif
30
	**/
30
	**/
31
	public function extraireExif($chemin_fichier)
-
 
32
	{
31
	public function extraireExif($chemin_fichier) {
33
		$exif_tab = $this->initialiserTableauExif () ;
-
 
34
	
32
		$exif_tab = $this->initialiserTableauExif () ;
Line 35... Line 33...
35
		$exif = @exif_read_data($chemin_fichier,"EXIF,COMPUTED,IFD0,FILE,COMMENT",true,false);
33
		$exif = @exif_read_data($chemin_fichier,"EXIF,COMPUTED,IFD0,FILE,COMMENT", true, false);
36
 
34
 
37
		if ($exif) {
-
 
38
			foreach ($exif as $key => $section) 
35
		if ($exif) {
39
			{
-
 
40
			    foreach ($section as $name => $val) 
36
			foreach ($exif as $key => $section) {
41
			    {
-
 
42
					if ($name != "MakerNote")
37
			    foreach ($section as $name => $val) {
43
					{
38
					if ($name != "MakerNote") {
44
							$this->decoderValeurExif ($name, $val ,&$exif_tab) ;
39
							$this->decoderValeurExif($name, $val , $exif_tab);
45
					}
40
					}
46
			    }
41
			    }
47
			}
-
 
48
		}
42
			}
49
		
43
		}
50
		return $exif_tab ;
44
		return $exif_tab;
51
	}
45
	}
52
	
46
 
53
	/**
47
	/**
54
	* Extraction des metadonnées iptc 
48
	* Extraction des metadonnées iptc
55
	**/
-
 
56
	public function extraireIptc($chemin_fichier)
49
	**/
57
	{
50
	public function extraireIptc($chemin_fichier) {
58
		$iptc_tab = $this->initialiserTableauIptc() ;
51
		$iptc_tab = $this->initialiserTableauIptc() ;
59
		
52
 
60
		// geimagesize renvoie le infos iptc dans le tableau info
53
		// geimagesize renvoie le infos iptc dans le tableau info
61
		$size = getimagesize($chemin_fichier, $info);
54
		$size = getimagesize($chemin_fichier, $info);
62
		// s'il existe
-
 
63
		if (isset($info["APP13"])) 
55
		// s'il existe
64
		{
56
		if (isset($info["APP13"])) {
65
			// on parse les donnees
57
			// on parse les donnees
66
			$iptc = iptcparse($info["APP13"]);
58
			$iptc = iptcparse($info["APP13"]);
67
			if ($iptc) {
59
			if ($iptc) {
68
				// et on les analyse
-
 
69
				foreach ($iptc as $marker => $section)
60
				// et on les analyse
70
				{
-
 
71
					foreach ($section as $nom => $val)
61
				foreach ($iptc as $marker => $section) {
72
					{
62
					foreach ($section as $nom => $val) {
73
						// pour remplir le tableau de donnees
63
						// pour remplir le tableau de donnees
74
						$this->decoderValeurIptc($marker, $val ,&$iptc_tab) ;
64
						$this->decoderValeurIptc($marker, $val, $iptc_tab);
75
					}
65
					}
76
				}
66
				}
77
			}
67
			}
78
		}
68
		}
79
		
69
 
80
		return $iptc_tab ;
70
		return $iptc_tab;
81
	}
71
	}
82
	
72
 
83
	/**
73
	/**
84
	* Stocke une valeur de metadonnées exif dans le champ du tableau correspondant
74
	* Stocke une valeur de metadonnées exif dans le champ du tableau correspondant
85
	* @param String $nom nom de la valeur
75
	* @param String $nom nom de la valeur
86
	* @param String $val valeur
76
	* @param String $val valeur
87
	* @param String $data référence vers le tableau où la donnée sera stockée 
77
	* @param String $data référence vers le tableau où la donnée sera stockée
88
	**/
-
 
89
	private function decoderValeurExif($nom, $val ,$data_tab)
78
	**/
90
	{	
-
 
91
		switch ($nom)
-
 
92
		{
79
	private function decoderValeurExif($nom, $val, &$data_tab) {
93
		
80
		switch ($nom) {
94
			case "Height" :
81
			case "Height" :
95
			$data_tab['ci_meta_height'] = $val  ;
82
			$data_tab['ci_meta_height'] = $val  ;
96
			break ;
83
			break ;
97
			
84
 
98
			case "Width" :
85
			case "Width" :
99
			$data_tab['ci_meta_width'] = $val  ;
86
			$data_tab['ci_meta_width'] = $val  ;
100
			break ;
87
			break ;
101
			
88
 
102
			case "Make" :
89
			case "Make" :
103
				$data_tab['ci_meta_make'] = $val  ;
90
				$data_tab['ci_meta_make'] = $val  ;
104
			break ;
91
			break ;
105
			
92
 
106
			case "Model" :
93
			case "Model" :
107
				$data_tab['ci_meta_model'] = $val ;
94
				$data_tab['ci_meta_model'] = $val ;
108
			break ;
95
			break ;
109
			
96
 
110
			case "XResolution" :
97
			case "XResolution" :
111
				$data_tab['ci_meta_x_resolution'] = $val  ;
98
				$data_tab['ci_meta_x_resolution'] = $val  ;
112
			break ;
99
			break ;
113
			
100
 
114
			case "YResolution" :
101
			case "YResolution" :
115
				$data_tab['ci_meta_y_resolution'] = $val ;
102
				$data_tab['ci_meta_y_resolution'] = $val ;
116
			break ;	
103
			break ;
117
				
104
 
118
			case "DateTimeOriginal" :
105
			case "DateTimeOriginal" :
119
				$data_tab['ci_meta_date_time'] = $val  ;
106
				$data_tab['ci_meta_date_time'] = $val  ;
120
			break ;
107
			break ;
121
			
108
 
122
			case "GPS" :
109
			case "GPS" :
123
				$data_tab['ci_meta_gps'] = $val  ;
110
				$data_tab['ci_meta_gps'] = $val  ;
124
			break ;
111
			break ;
125
			
112
 
126
			case "UserComment" :
113
			case "UserComment" :
127
				$data_tab['ci_meta_user_comment'] = '"'.$val.'"' ;
114
				$data_tab['ci_meta_user_comment'] = '"'.$val.'"' ;
128
			break ;
115
			break ;
129
			
116
 
130
			case "ExposureTime" :
117
			case "ExposureTime" :
131
				$data_tab['ci_meta_exif_exposure_time'] = $val ;
118
				$data_tab['ci_meta_exif_exposure_time'] = $val ;
132
			break ;
119
			break ;
133
			
120
 
134
			case "FNumber" :
121
			case "FNumber" :
135
				$data_tab['ci_meta_exif_f_number'] = $val  ;
122
				$data_tab['ci_meta_exif_f_number'] = $val  ;
136
			break ;
123
			break ;
137
			
124
 
138
			case "ExifVersion" :
125
			case "ExifVersion" :
139
				$data_tab['ci_meta_exif_exif_version'] = $val  ;
126
				$data_tab['ci_meta_exif_exif_version'] = $val  ;
140
			break ;
127
			break ;
141
			
128
 
142
			case "CompressedBitsPerPixel" :
129
			case "CompressedBitsPerPixel" :
143
				$data_tab['ci_meta_exif_compressed_bits_per_pixel'] = $val  ;
130
				$data_tab['ci_meta_exif_compressed_bits_per_pixel'] = $val  ;
144
			break ;
131
			break ;
145
			
132
 
146
			case "ShutterSpeedValue" :
133
			case "ShutterSpeedValue" :
147
				$data_tab['ci_meta_exif_shutter_speed_value'] = $val  ;
134
				$data_tab['ci_meta_exif_shutter_speed_value'] = $val  ;
148
			break ;
135
			break ;
149
			
136
 
150
			case "ApertureValue" :
137
			case "ApertureValue" :
151
				$data_tab['ci_meta_exif_aperture_value'] = $val  ;
138
				$data_tab['ci_meta_exif_aperture_value'] = $val  ;
152
			break ;
139
			break ;
153
			
140
 
154
			case "ExposureBiasValue" :
141
			case "ExposureBiasValue" :
155
				$data_tab['ci_meta_exif_exposure_bias_value'] = $val  ;
142
				$data_tab['ci_meta_exif_exposure_bias_value'] = $val  ;
156
			break ;
143
			break ;
157
			
144
 
158
			case "MaxApertureValue" :
145
			case "MaxApertureValue" :
159
				$data_tab['ci_meta_exif_max_aperture_value'] = $val  ;
146
				$data_tab['ci_meta_exif_max_aperture_value'] = $val  ;
160
			break ;
147
			break ;
161
			
148
 
162
			case "MeteringMode" :
149
			case "MeteringMode" :
163
				$data_tab['ci_meta_exif_metering_mode'] = $val  ;
150
				$data_tab['ci_meta_exif_metering_mode'] = $val  ;
164
			break ;
151
			break ;
165
			
152
 
166
			case "LightSource" :
153
			case "LightSource" :
167
				$data_tab['ci_meta_exif_light_source'] = $val  ;
154
				$data_tab['ci_meta_exif_light_source'] = $val  ;
168
			break ;
155
			break ;
169
			
156
 
170
			case "Flash" :
157
			case "Flash" :
171
				$data_tab['ci_meta_exif_flash'] = $val  ;
158
				$data_tab['ci_meta_exif_flash'] = $val  ;
172
			break ;
159
			break ;
173
			
160
 
174
			case "FocalLength" :
161
			case "FocalLength" :
175
				$data_tab['ci_meta_exif_focal_length'] = $val  ;
162
				$data_tab['ci_meta_exif_focal_length'] = $val  ;
176
			break ;
163
			break ;
177
			
164
 
178
			case "FlashpixVersion" :
165
			case "FlashpixVersion" :
179
				$data_tab['ci_meta_exif_flash_pix_version'] = $val  ;
166
				$data_tab['ci_meta_exif_flash_pix_version'] = $val  ;
180
			break ;
167
			break ;
181
			
168
 
182
			case "ColorSpace" :
169
			case "ColorSpace" :
183
				$data_tab['ci_meta_exif_color_space'] = $val  ;
170
				$data_tab['ci_meta_exif_color_space'] = $val  ;
184
			break ;
171
			break ;
185
			
172
 
186
			case "InteroperabilityOffset" :
173
			case "InteroperabilityOffset" :
187
				$data_tab['ci_meta_exif_interoperability_offset'] = $val  ;
174
				$data_tab['ci_meta_exif_interoperability_offset'] = $val  ;
188
			break ;
175
			break ;
189
			
176
 
190
			case "FocalPlaneXResolution" :
177
			case "FocalPlaneXResolution" :
191
				$data_tab['ci_meta_exif_focal_plane_x_resolution'] = $val  ;
178
				$data_tab['ci_meta_exif_focal_plane_x_resolution'] = $val  ;
192
			break ;
179
			break ;
193
			
180
 
194
			case "FocalPlaneYResolution" :
181
			case "FocalPlaneYResolution" :
195
				$data_tab['ci_meta_exif_focal_plane_y_resolution'] = $val  ;
182
				$data_tab['ci_meta_exif_focal_plane_y_resolution'] = $val  ;
196
			break ;
183
			break ;
197
			
184
 
198
			case "FocalPlaneResolutionUnit" :
185
			case "FocalPlaneResolutionUnit" :
199
				$data_tab['ci_meta_exif_focal_plane_resolution_unit'] = $val  ;
186
				$data_tab['ci_meta_exif_focal_plane_resolution_unit'] = $val  ;
200
			break ;
187
			break ;
201
			
188
 
202
			case "SensingMethod" :
189
			case "SensingMethod" :
203
				$data_tab['ci_meta_exif_sensing_method'] = $val  ;
190
				$data_tab['ci_meta_exif_sensing_method'] = $val  ;
204
			break ;
191
			break ;
205
			
192
 
206
			case "FileSource" :
193
			case "FileSource" :
207
				$data_tab['ci_meta_exif_file_source'] = $val  ;
194
				$data_tab['ci_meta_exif_file_source'] = $val  ;
208
			break ;
195
			break ;
209
			
196
 
210
			case "CustomRendered" :
197
			case "CustomRendered" :
211
				$data_tab['ci_meta_exif_custom_rendered'] = $val  ;
198
				$data_tab['ci_meta_exif_custom_rendered'] = $val  ;
212
			break ;
199
			break ;
213
			
200
 
214
			case "ExposureMode" :
201
			case "ExposureMode" :
215
				$data_tab['ci_meta_exif_exposure_mode'] = $val  ;
202
				$data_tab['ci_meta_exif_exposure_mode'] = $val  ;
216
			break ;
203
			break ;
217
			
204
 
218
			case "WhiteBalance" :
205
			case "WhiteBalance" :
219
				$data_tab['ci_meta_exif_white_balance'] = $val  ;
206
				$data_tab['ci_meta_exif_white_balance'] = $val  ;
220
			break ;
207
			break ;
221
			
208
 
222
			case "DigitalZoomRatio" :
209
			case "DigitalZoomRatio" :
223
				$data_tab['ci_meta_exif_digital_zoom_ratio'] = $val  ;
210
				$data_tab['ci_meta_exif_digital_zoom_ratio'] = $val  ;
224
			break ;
211
			break ;
225
			
212
 
226
			case "SceneCaptureType" :
213
			case "SceneCaptureType" :
227
				$data_tab['ci_meta_exif_scene_capture_type'] = $val  ;
214
				$data_tab['ci_meta_exif_scene_capture_type'] = $val  ;
228
			break ;
215
			break ;
229
			
216
 
230
			case "GainControl" :
217
			case "GainControl" :
231
				$data_tab['ci_meta_exif_gain_control'] = $val  ;
218
				$data_tab['ci_meta_exif_gain_control'] = $val  ;
232
			break ;
219
			break ;
233
			
220
 
234
			case "Contrast" :
221
			case "Contrast" :
235
				$data_tab['ci_meta_exif_contrast'] = $val  ;
222
				$data_tab['ci_meta_exif_contrast'] = $val  ;
236
			break ;
223
			break ;
237
			
224
 
238
			case "Saturation" :
225
			case "Saturation" :
239
				$data_tab['ci_meta_exif_saturation'] = $val  ;
226
				$data_tab['ci_meta_exif_saturation'] = $val  ;
240
			break ;
227
			break ;
241
			
228
 
242
			case "Sharpness" :
229
			case "Sharpness" :
243
				$data_tab['ci_meta_exif_sharpness'] = $val  ;
230
				$data_tab['ci_meta_exif_sharpness'] = $val  ;
244
			break ;
231
			break ;
245
			
232
 
246
			case "SubjectDistanceRange" :
233
			case "SubjectDistanceRange" :
247
				$data_tab['ci_meta_exif_subject_distance_range'] = $val  ;
234
				$data_tab['ci_meta_exif_subject_distance_range'] = $val  ;
248
			break ;
235
			break ;
249
			
236
 
250
			default :
237
			default :
251
				$data_tab['ci_meta_exif_autres'] .= $nom.":".$val.";" ;
238
				$data_tab['ci_meta_exif_autres'] .= $nom.":".$val.";" ;
252
		}	
239
		}
253
	}
240
	}
254
	
241
 
255
	/**
242
	/**
256
	* Stocke une valeur de metadonnées iptc dans le champ du tableau correspondant
243
	* Stocke une valeur de metadonnées iptc dans le champ du tableau correspondant
257
	* @param String $nom nom de la valeur
244
	* @param String $nom nom de la valeur
258
	* @param String $val valeur
245
	* @param String $val valeur
259
	* @param String $data référence vers le tableau où la donnée sera stockée
246
	* @param String $data référence vers le tableau où la donnée sera stockée
260
	**/
-
 
261
	private function decoderValeurIptc($nom, $val ,$data_tab)
247
	**/
262
	{	
-
 
263
		switch($nom)
248
	private function decoderValeurIptc($nom, $val, &$data_tab) {
264
		{
249
		switch($nom) {
265
			// mots cles iptc
250
			// mots cles iptc
266
			case "2#005" :
251
			case "2#005" :
267
				$data_tab['ci_meta_iptc_category'] = $val ;
252
				$data_tab['ci_meta_iptc_category'] = $val ;
268
			break;
253
			break;
269
			
254
 
270
			case "2#025" :
255
			case "2#025" :
271
				$data_tab['ci_meta_iptc_mots_cles'] = $val ;
256
				$data_tab['ci_meta_iptc_mots_cles'] = $val ;
272
			break;
257
			break;
273
			
258
 
274
			// champ by line
259
			// champ by line
275
			case "2#080" :
260
			case "2#080" :
276
				$data_tab['ci_meta_iptc_by_line']  = $val  ;
261
				$data_tab['ci_meta_iptc_by_line']  = $val  ;
277
			break ;
262
			break ;
278
			
263
 
279
			// champ by line titre
264
			// champ by line titre
280
			case "2#085" :
265
			case "2#085" :
281
				$data_tab['ci_meta_iptc_by_line_title'] = $val  ;
266
				$data_tab['ci_meta_iptc_by_line_title'] = $val  ;
282
			break ;
267
			break ;
283
			
268
 
284
			// ville
269
			// ville
285
			case "2#090" :
270
			case "2#090" :
286
				$data_tab['ci_meta_iptc_city'] = $val  ;
271
				$data_tab['ci_meta_iptc_city'] = $val  ;
287
			break ;
272
			break ;
288
			
273
 
289
			// sous location
274
			// sous location
290
			case "2#092" :
275
			case "2#092" :
291
				$data_tab['ci_meta_iptc_sub_location'] = $val ;
276
				$data_tab['ci_meta_iptc_sub_location'] = $val ;
292
			break ;
277
			break ;
293
			
278
 
294
			// etat (pour les us)
279
			// etat (pour les us)
295
			case "2#095" :
280
			case "2#095" :
296
				$data_tab['ci_meta_iptc_province_state'] = $val  ;
281
				$data_tab['ci_meta_iptc_province_state'] = $val  ;
297
			break ;
282
			break ;
298
			
283
 
299
			// code pays
284
			// code pays
300
			case "2#100" :
285
			case "2#100" :
301
				$data_tab['ci_meta_iptc_country_primary_location_code'] = $val  ;
286
				$data_tab['ci_meta_iptc_country_primary_location_code'] = $val  ;
302
			break ;
287
			break ;
303
			
288
 
304
			// code pays
289
			// code pays
305
			case "2#101" :
290
			case "2#101" :
306
				$data_tab['ci_meta_iptc_country_name'] = $val  ;
291
				$data_tab['ci_meta_iptc_country_name'] = $val  ;
307
			break ;
292
			break ;
308
			
293
 
309
			// titre principal
294
			// titre principal
310
			case "2#105" :
295
			case "2#105" :
311
				$data_tab['ci_meta_iptc_headline'] = $val  ;
296
				$data_tab['ci_meta_iptc_headline'] = $val  ;
312
			break ;
297
			break ;
313
			
298
 
314
			// credit
299
			// credit
315
			case "2#110" :
300
			case "2#110" :
316
				$data_tab['ci_meta_iptc_credit'] = $val  ;
301
				$data_tab['ci_meta_iptc_credit'] = $val  ;
317
			break ;
302
			break ;
318
			
303
 
319
			// copyright
304
			// copyright
320
			case "2#116" :
305
			case "2#116" :
321
				$data_tab['ci_meta_iptc_copyright_notice'] = $val  ;
306
				$data_tab['ci_meta_iptc_copyright_notice'] = $val  ;
322
			break ;
307
			break ;
323
			
308
 
324
			// contact
309
			// contact
325
			case "2#118" :
310
			case "2#118" :
326
				$data_tab['ci_meta_iptc_contact'] = $val  ;
311
				$data_tab['ci_meta_iptc_contact'] = $val  ;
327
			break ;
312
			break ;
328
			
313
 
329
			// autres (pour les champs qu'on ne prend pas en compte)
314
			// autres (pour les champs qu'on ne prend pas en compte)
330
			default :
315
			default :
331
				$data_tab['ci_meta_iptc_autres'] .= $nom.":".$val.";" ;
316
				$data_tab['ci_meta_iptc_autres'] .= $nom.":".$val.";" ;
332
		}
317
		}
333
	}
318
	}
334
	
319
 
335
	/**
320
	/**
336
	* Crée le tableau vide pour stocker les iptc pour le ce
321
	* Crée le tableau vide pour stocker les iptc pour le ce
337
	* 
322
	*
338
	* @return array $data_tab référence vers le tableau où la donnée sera stockée
323
	* @return array $data_tab référence vers le tableau où la donnée sera stockée
339
	* 
324
	*
340
	**/
-
 
341
	private function initialiserTableauIptc()
325
	**/
342
	{	
326
	private function initialiserTableauIptc() {
343
		$data_tab = array() ;
327
		$data_tab = array() ;
344
		
328
 
345
		$data_tab['ci_meta_iptc_category'] = NULL ;
329
		$data_tab['ci_meta_iptc_category'] = NULL ;
346
		
330
 
347
		$data_tab['ci_meta_iptc_mots_cles'] = NULL ;
331
		$data_tab['ci_meta_iptc_mots_cles'] = NULL ;
348
			
332
 
349
		$data_tab['ci_meta_iptc_by_line']  = NULL ;
333
		$data_tab['ci_meta_iptc_by_line']  = NULL ;
350
			
334
 
351
		$data_tab['ci_meta_iptc_by_line_title'] = NULL ;
335
		$data_tab['ci_meta_iptc_by_line_title'] = NULL ;
352
			
336
 
353
		$data_tab['ci_meta_iptc_city'] = NULL ;
337
		$data_tab['ci_meta_iptc_city'] = NULL ;
354
			
338
 
355
		$data_tab['ci_meta_iptc_sub_location'] = NULL ;
339
		$data_tab['ci_meta_iptc_sub_location'] = NULL ;
356
			
340
 
357
		$data_tab['ci_meta_iptc_province_state'] = NULL ;
341
		$data_tab['ci_meta_iptc_province_state'] = NULL ;
358
			
342
 
359
		$data_tab['ci_meta_iptc_country_primary_location_code'] = NULL ;
343
		$data_tab['ci_meta_iptc_country_primary_location_code'] = NULL ;
360
		
344
 
361
		$data_tab['ci_meta_iptc_country_name'] = NULL  ;
345
		$data_tab['ci_meta_iptc_country_name'] = NULL  ;
362
			
346
 
363
		$data_tab['ci_meta_iptc_headline'] = NULL ;
347
		$data_tab['ci_meta_iptc_headline'] = NULL ;
364
			
348
 
365
		$data_tab['ci_meta_iptc_credit'] = NULL ;
349
		$data_tab['ci_meta_iptc_credit'] = NULL ;
366
			
350
 
367
		$data_tab['ci_meta_iptc_copyright_notice'] = NULL ;
351
		$data_tab['ci_meta_iptc_copyright_notice'] = NULL ;
368
			
352
 
369
		$data_tab['ci_meta_iptc_contact'] = NULL ;
353
		$data_tab['ci_meta_iptc_contact'] = NULL ;
370
			
354
 
371
		$data_tab['ci_meta_iptc_autres'] .= " " ;
355
		$data_tab['ci_meta_iptc_autres'] = " ";
372
	
356
 
373
		return $data_tab ;		
357
		return $data_tab ;
374
	}
358
	}
375
	
359
 
376
	/**
360
	/**
377
	* Crée le tableau vide pour stocker les exifs pour le cel
361
	* Crée le tableau vide pour stocker les exifs pour le cel
378
	* 
362
	*
379
	* @return array $data_tab référence vers le tableau où la donnée sera stockée
363
	* @return array $data_tab référence vers le tableau où la donnée sera stockée
380
	* 
364
	*
381
	**/
-
 
382
	private function initialiserTableauExif()
365
	**/
383
	{
366
	private function initialiserTableauExif() {
384
		$data_tab = array() ;
367
		$data_tab = array() ;
385
	 
368
 
386
		$data_tab['ci_meta_height'] = 0  ;
369
		$data_tab['ci_meta_height'] = 0  ;
387
			
370
 
388
		$data_tab['ci_meta_width'] = 0  ;
371
		$data_tab['ci_meta_width'] = 0  ;
389
	 
372
 
390
		$data_tab['ci_meta_make'] = NULL ;
373
		$data_tab['ci_meta_make'] = NULL ;
391
		
374
 
392
		$data_tab['ci_meta_model'] = NULL ;
375
		$data_tab['ci_meta_model'] = NULL ;
393
		
376
 
394
		$data_tab['ci_meta_x_resolution'] = NULL ;
377
		$data_tab['ci_meta_x_resolution'] = NULL ;
395
		
378
 
396
		$data_tab['ci_meta_y_resolution'] = NULL ;
379
		$data_tab['ci_meta_y_resolution'] = NULL ;
397
		
380
 
398
		$data_tab['ci_meta_date_time'] = NULL ;
381
		$data_tab['ci_meta_date_time'] = NULL ;
399
		
382
 
400
		$data_tab['ci_meta_gps'] = NULL ;
383
		$data_tab['ci_meta_gps'] = NULL ;
401
	
384
 
402
		$data_tab['ci_meta_user_comment'] = NULL ;
385
		$data_tab['ci_meta_user_comment'] = NULL ;
403
	
386
 
404
		$data_tab['ci_meta_exif_exposure_time'] = NULL ;
387
		$data_tab['ci_meta_exif_exposure_time'] = NULL ;
405
	
388
 
406
		$data_tab['ci_meta_exif_f_number'] = NULL ;
389
		$data_tab['ci_meta_exif_f_number'] = NULL ;
407
	
390
 
408
		$data_tab['ci_meta_exif_exif_version'] = NULL ;
391
		$data_tab['ci_meta_exif_exif_version'] = NULL ;
409
	
392
 
410
		$data_tab['ci_meta_exif_compressed_bits_per_pixel'] = NULL ;
393
		$data_tab['ci_meta_exif_compressed_bits_per_pixel'] = NULL ;
411
	
394
 
412
		$data_tab['ci_meta_exif_shutter_speed_value'] = NULL ;
395
		$data_tab['ci_meta_exif_shutter_speed_value'] = NULL ;
413
	
396
 
414
		$data_tab['ci_meta_exif_aperture_value'] = NULL ;
397
		$data_tab['ci_meta_exif_aperture_value'] = NULL ;
415
	
398
 
416
		$data_tab['ci_meta_exif_exposure_bias_value'] = NULL ;
399
		$data_tab['ci_meta_exif_exposure_bias_value'] = NULL ;
417
	
400
 
418
		$data_tab['ci_meta_exif_max_aperture_value'] = NULL ;
401
		$data_tab['ci_meta_exif_max_aperture_value'] = NULL ;
419
	
402
 
420
		$data_tab['ci_meta_exif_metering_mode'] = NULL ;
403
		$data_tab['ci_meta_exif_metering_mode'] = NULL ;
421
	
404
 
422
		$data_tab['ci_meta_exif_flash'] = NULL ;
405
		$data_tab['ci_meta_exif_flash'] = NULL ;
423
		
406
 
424
		$data_tab['ci_meta_exif_light_source'] = NULL ;
407
		$data_tab['ci_meta_exif_light_source'] = NULL ;
425
	
408
 
426
		$data_tab['ci_meta_exif_focal_length'] = NULL ;
409
		$data_tab['ci_meta_exif_focal_length'] = NULL ;
427
	
410
 
428
		$data_tab['ci_meta_exif_flash_pix_version'] = NULL ;
411
		$data_tab['ci_meta_exif_flash_pix_version'] = NULL ;
429
	
412
 
430
		$data_tab['ci_meta_exif_color_space'] = NULL ;
413
		$data_tab['ci_meta_exif_color_space'] = NULL ;
431
	
414
 
432
		$data_tab['ci_meta_exif_interoperability_offset'] = NULL ;
415
		$data_tab['ci_meta_exif_interoperability_offset'] = NULL ;
433
	
416
 
434
		$data_tab['ci_meta_exif_focal_plane_x_resolution'] = NULL ;
417
		$data_tab['ci_meta_exif_focal_plane_x_resolution'] = NULL ;
435
	
418
 
436
		$data_tab['ci_meta_exif_focal_plane_y_resolution'] = NULL ;
419
		$data_tab['ci_meta_exif_focal_plane_y_resolution'] = NULL ;
437
	
420
 
438
		$data_tab['ci_meta_exif_focal_plane_resolution_unit'] = NULL ;
421
		$data_tab['ci_meta_exif_focal_plane_resolution_unit'] = NULL ;
439
	
422
 
440
		$data_tab['ci_meta_exif_sensing_method'] = NULL ;
423
		$data_tab['ci_meta_exif_sensing_method'] = NULL ;
441
	
424
 
442
		$data_tab['ci_meta_exif_file_source'] = NULL ;
425
		$data_tab['ci_meta_exif_file_source'] = NULL ;
443
			
426
 
444
		$data_tab['ci_meta_exif_custom_rendered'] = NULL ;
427
		$data_tab['ci_meta_exif_custom_rendered'] = NULL ;
445
	
428
 
446
		$data_tab['ci_meta_exif_exposure_mode'] = NULL ;
429
		$data_tab['ci_meta_exif_exposure_mode'] = NULL ;
447
	
430
 
448
		$data_tab['ci_meta_exif_white_balance'] = NULL ;		
431
		$data_tab['ci_meta_exif_white_balance'] = NULL ;
449
	
432
 
450
		$data_tab['ci_meta_exif_digital_zoom_ratio'] = NULL ;
433
		$data_tab['ci_meta_exif_digital_zoom_ratio'] = NULL ;
451
	
434
 
452
		$data_tab['ci_meta_exif_scene_capture_type'] = NULL ;
435
		$data_tab['ci_meta_exif_scene_capture_type'] = NULL ;
453
	
436
 
454
		$data_tab['ci_meta_exif_gain_control'] = NULL ;
437
		$data_tab['ci_meta_exif_gain_control'] = NULL ;
455
	
438
 
456
		$data_tab['ci_meta_exif_contrast'] = NULL ;
439
		$data_tab['ci_meta_exif_contrast'] = NULL ;
457
		
440
 
458
		$data_tab['ci_meta_exif_saturation'] = NULL ;
441
		$data_tab['ci_meta_exif_saturation'] = NULL ;
459
	
442
 
460
		$data_tab['ci_meta_exif_sharpness'] = NULL ;
443
		$data_tab['ci_meta_exif_sharpness'] = NULL ;
461
	
444
 
462
		$data_tab['ci_meta_exif_subject_distance_range'] = NULL ;
445
		$data_tab['ci_meta_exif_subject_distance_range'] = NULL ;
463
	
446
 
464
		$data_tab['ci_meta_exif_autres'] .= " " ;
447
		$data_tab['ci_meta_exif_autres'] = " ";
465
	
448
 
466
		return $data_tab ;			
449
		return $data_tab ;
467
	}
450
	}
468
	
451
 
469
	/**
452
	/**
470
	* Crée le tableau vide pour stocker les section supplémentaires pour le cel
453
	* Crée le tableau vide pour stocker les section supplémentaires pour le cel
471
	* 
454
	*
472
	* @return array $tab référence vers le tableau de metadonnées
455
	* @return array $tab référence vers le tableau de metadonnées
473
	* 
456
	*
474
	**/
-
 
475
	private function InitialiserSectionsSupplementaires($tab)
457
	**/
476
	{
458
	private function InitialiserSectionsSupplementaires(&$tab) {
477
		$tab['ci_meta_exif_autres'] .= " " ;
459
		$tab['ci_meta_exif_autres'] .= " " ;
478
		$tab['ci_meta_iptc_autres'] .= " " ;
460
		$tab['ci_meta_iptc_autres'] .= " " ;
479
		$tab['ci_nom_original'] = NULL ;
461
		$tab['ci_nom_original'] = NULL ;