86,7 → 86,28 |
} |
} |
} |
|
public function creerOuRenvoyerImage($id, $format) { |
$dossier = $this->obtenirDossierPourFormat($id, $format); |
$nom_fichier = $this->convertirIdBddVersNomFichier($id, $format); |
$chemin_image = $dossier.'/'.$nom_fichier; |
|
$image = false; |
if(!file_exists($chemin_image)) { |
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($this->obtenirCheminImageOriginale($id)); |
if($infos_image_originale) { |
$debut = microtime(); |
$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale, $format); |
|
$image = file_get_contents($chemin_image); |
} |
} else { |
$image = file_get_contents($chemin_image); |
} |
|
return $image; |
} |
|
public function creerMiniatureImageSelonFormat($infos_image_originale, $format = 'O') { |
if ($format == 'O') { |
// format original : rien à faire |
114,7 → 135,53 |
|
return $image_redimensionnee; |
} |
|
public function stockerFichierOriginal($fichier, $id) { |
$chemin_fichier_origine = is_array($fichier) ? $fichier['tmp_name'] : $fichier; |
|
$chemin_base_fichier = $this->creerSiNecessaireEtRenvoyerCheminStockageFichierPourIdEtFormat($id, 'O'); |
$nom_fichier = $this->convertirIdBddVersNomFichier($id, 'O'); |
|
$chemin_fichier = $chemin_base_fichier.'/'.$nom_fichier; |
|
$deplacement_fichier = $this->stockerImageExterne($chemin_fichier_origine, $chemin_fichier); |
|
if ($deplacement_fichier) { |
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($chemin_fichier); |
$taux_compression = $this->renvoyerTauxCompressionPourPoids($infos_image_originale['poids_octets']); |
|
if ($taux_compression < 100 && $this->mode == self::MODE_IMAGEMAGICK) { |
$this->ecrireImageSurDisqueAvecMeta($chemin_fichier, $taux_compression); |
} |
|
return $infos_image_originale; |
|
} else { |
$erreur = 'ERROR : probleme durant le déplacement du fichier temporaire \n' ; |
$this->logger('CEL_bugs',$erreur); |
return false ; |
} |
} |
|
public function stockerFichierEtCreerMiniatures($fichier, $id) { |
|
$infos_image_originale_stockee = $this->stockerFichierOriginal($fichier, $id); |
if($infos_image_originale_stockee) { |
$formats = $this->getFormats(); |
|
// creation de miniatures pour chacuns des formats définis |
foreach($formats as $format) { |
$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale_stockee, $format); |
} |
} else { |
$erreur = 'ERROR : impossible d\'obtenir les informations sur l\'image originale \n' ; |
$this->logger('CEL_bugs',$erreur); |
return false ; |
} |
|
return true ; |
} |
|
public function creerEtStockerMiniatureFichierImageSelonFormat($id ,$infos_image_originale, $format = 'O') { |
$image_redimensionnee = $this->creerMiniatureImageSelonFormat($infos_image_originale, $format); |
|
231,43 → 298,6 |
return $image_redimensionnee; |
} |
|
public function stockerFichierEtCreerMiniatures($fichier, $id) { |
$chemin_fichier_origine = is_array($fichier) ? $fichier['tmp_name'] : $fichier; |
|
$chemin_base_fichier = $this->creerSiNecessaireEtRenvoyerCheminStockageFichierPourIdEtFormat($id, 'O'); |
$nom_fichier = $this->convertirIdBddVersNomFichier($id, 'O'); |
|
$chemin_fichier = $chemin_base_fichier.'/'.$nom_fichier; |
|
$deplacement_fichier = $this->stockerImageExterne($chemin_fichier_origine, $chemin_fichier); |
|
if ($deplacement_fichier) { |
|
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($chemin_fichier); |
$taux_compression = $this->renvoyerTauxCompressionPourPoids($infos_image_originale['poids_octets']); |
|
if ($taux_compression < 100 && $this->mode == self::MODE_IMAGEMAGICK) { |
$this->ecrireImageSurDisqueAvecMeta($chemin_fichier, $taux_compression); |
} |
|
$infos_image_originale_stockee = $this->obtenirImageEtInfosPourChemin($chemin_fichier); |
|
$formats = $this->getFormats(); |
|
// creation de miniatures pour chacuns des formats définis |
foreach($formats as $format) { |
$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale_stockee, $format); |
} |
|
return true ; |
|
} else { |
$erreur = 'ERROR : probleme durant le déplacement du fichier temporaire \n' ; |
$this->logger('CEL_bugs',$erreur); |
return false ; |
} |
} |
|
public function stockerImageExterne($chemin_fichier_temp, $chemin_destination) { |
if (is_uploaded_file($chemin_fichier_temp)) { |
$deplacement = move_uploaded_file($chemin_fichier_temp, $chemin_destination); |