Subversion Repositories eFlore/Applications.cel

Rev

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

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