15,7 → 15,7 |
$this->mode = self::MODE_GD; |
|
if (extension_loaded('imagick')) { |
putenv("MAGICK_TEMPORARY_PATH=/home/aurelien/web/file_tmp"); |
putenv("MAGICK_TEMPORARY_PATH=".$this->config['cel_db']['chemin_stockage_temp']); |
$this->mode = self::MODE_IMAGEMAGICK; |
} |
} |
24,13 → 24,6 |
$this->itererRecursivement($this->config['cel_db']['chemin_images']); |
} |
|
public function testOptiCrop() { |
|
$image = $this->obtenirImageEtInfosPourChemin('/home/aurelien/web/file_tmp/test.jpg'); |
return $this->opticrop($image,'CRXS',''); |
|
} |
|
public function regenererMiniaturesIntervalle($params) { |
|
$id_debut = $params[0]; |
38,13 → 31,8 |
|
if (is_numeric($id_debut) && is_numeric($id_fin)) { |
|
for ($i = $id_debut; $i <= $id_fin; $i++) {; |
|
//echo("Début du traitement des images de ".$id_debut." à ".$id_fin."\n"); |
|
for ($i = $id_debut; $i <= $id_fin; $i++) { |
|
echo($i."\n"); |
|
$tab_param = array($i); |
$this->regenererMiniaturesPourId($tab_param); |
} |
60,7 → 48,6 |
} |
|
$dossier_fichier = $this->obtenirDossierPourFormat($id, 'O'); |
|
$nom_fichier = $this->convertirIdBddVersNomFichier($id, 'O'); |
|
$chemin_fichier = $dossier_fichier.'/'.$nom_fichier; |
71,13 → 58,8 |
// creation de miniatures pour chacuns des formats définis |
foreach($this->formats as $format) { |
$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale, $format); |
} |
}; |
|
//if($this->verbose) { |
//echo("traitement de l'image ".$infos_image_originale."\n"); |
//} |
} else { |
//echo 'le fichier '.$chemin_fichier.'n\'existe pas '."\n"; |
} |
} |
|
98,8 → 80,7 |
|
if ($fichier_ou_dossier->isDir()) { |
|
$profondeur_dossier_fils = $profondeur + 1; |
$this->itererRecursivement($fichier_ou_dossier->getPathname(), $profondeur_dossier_fils); |
$this->itererRecursivement($fichier_ou_dossier->getPathname()); |
|
} else { |
|
117,7 → 98,7 |
} |
} |
|
public function creerEtStockerMiniatureFichierImageSelonFormat($id ,$infos_image_originale, $format = 'O') { |
public function creerMiniatureImageSelonFormat($infos_image_originale, $format = 'O') { |
|
if ($format == 'O') { |
// format original : rien à faire |
144,6 → 125,13 |
} |
} |
|
return $image_redimensionnee; |
} |
|
public function creerEtStockerMiniatureFichierImageSelonFormat($id ,$infos_image_originale, $format = 'O') { |
|
$image_redimensionnee = $this->creerMiniatureImageSelonFormat($infos_image_originale, $format); |
|
$taux_compression = $this->renvoyerTauxCompressionPourPoids($infos_image_originale['poids_octets']); |
$this->ecrireImageSurDisque($image_redimensionnee, $id, $format, $taux_compression); |
|
211,18 → 199,28 |
|
if ($this->estPaysage($informations_image)) { |
$cote_carre_non_redimensionne = $informations_image['hauteur']; |
$debut_largeur_a_copier = ($informations_image['hauteur'] - $informations_image['hauteur'])/2 ; |
$debut_largeur_a_copier = ($informations_image['hauteur'] - $cote_carre)/2 ; |
$debut_hauteur_a_copier = 0; |
$nb_pixels_largeur_a_copier = $informations_image['hauteur']; |
$nb_pixels_hauteur_a_copier = $informations_image['hauteur']; |
|
if($debut_largeur_a_copier <= 0) { |
$debut_largeur_a_copier = 0; |
} |
|
$nb_pixels_largeur_a_copier = $cote_carre_non_redimensionne; |
$nb_pixels_hauteur_a_copier = $cote_carre_non_redimensionne; |
} else { |
$cote_carre_non_redimensionne = $informations_image['largeur']; |
$debut_largeur_a_copier = 0 ; |
$debut_hauteur_a_copier = ($informations_image['largeur'] - $informations_image['largeur'])/2; |
$nb_pixels_largeur_a_copier = $informations_image['largeur']; |
$nb_pixels_hauteur_a_copier = $informations_image['largeur']; |
$debut_hauteur_a_copier = ($informations_image['largeur'] - $cote_carre)/2; |
|
if($debut_hauteur_a_copier <= 0) { |
$debut_hauteur_a_copier = 0; |
} |
|
$nb_pixels_largeur_a_copier = $cote_carre_non_redimensionne; |
$nb_pixels_hauteur_a_copier = $cote_carre_non_redimensionne; |
} |
|
$image_carre_temporaire = imagecreatetruecolor($cote_carre_non_redimensionne, $cote_carre_non_redimensionne); |
|
imagecopyresampled($image_carre_temporaire, |
304,6 → 302,7 |
|
if (!file_exists($chemin_sur_serveur_final)) |
{ |
umask(0); |
if (mkdir($chemin_sur_serveur_final,$this->droits, true)) { |
chmod($chemin_sur_serveur_final,$this->droits); |
} |
338,14 → 337,32 |
return $chemin_sur_serveur_final; |
} |
|
public function obtenirCheminImageOriginale($id_image) { |
|
$nom = $this->convertirIdBddVersNomFichier($id_image, 'O'); |
$dossier = $this->obtenirDossierPourFormat($id_image,'O'); |
|
return $dossier.'/'.$nom; |
} |
|
public function obtenirImageEtInfosPourId($id_image) { |
|
$chemin_image_o = $this->obtenirCheminImageOriginale($id_image); |
return $this->obtenirImageEtInfosPourChemin($chemin_image_o); |
} |
|
public function obtenirImageEtInfosPourChemin($chemin_fichier) { |
|
$image_et_infos = false; |
|
if(file_exists($chemin_fichier)) { |
|
$image_et_infos = array(); |
|
list($image_et_infos['largeur'], $image_et_infos['hauteur']) = getimagesize($chemin_fichier); |
$image_et_infos['poids_octets'] = filesize($chemin_fichier); |
$image_et_infos['image'] = imagecreatefromjpeg($chemin_fichier); |
$image_et_infos['chemin'] = $chemin_fichier; |
} |
|
return $image_et_infos; |
} |
458,7 → 475,7 |
unlink($chemin_sur_serveur_final.'/'.$nom_fichier); |
} |
|
// attention ceci ne preserve pas les metadonnées |
// attention, ceci ne preserve pas les metadonnées |
imagejpeg($image_binaire, $chemin_sur_serveur_final.'/'.$nom_fichier, $compression); |
chmod($chemin_sur_serveur_final.'/'.$nom_fichier,$this->droits); |
} |
465,17 → 482,16 |
|
public function ecrireImageSurDisqueAvecMeta($image_a_stocker, $compression = 100) { |
|
$image_a_stocker = new Imagick(); |
$image_a_stocker->readImageBlob($image_a_stocker); |
$image_a_stocker = new Imagick($image_a_stocker); |
|
// l'utilisation d'image magick préserve les métadonnées lors d'une recompression |
$image_a_stocker->setformat("jpeg"); |
$image_a_stocker->setImageCompression(imagick::COMPRESSION_JPEG); |
$image_a_stocker->setCompressionQuality($compression); |
$image_a_stocker->writeImage($chemin_fichier); |
$image_a_stocker->writeImage($image_a_stocker); |
$image_a_stocker->destroy(); |
|
chmod($chemin_sur_serveur_final.'/'.$nom_fichier,$this->droits); |
chmod($image_a_stocker,$this->droits); |
} |
|
public function renvoyerEtCreerImageCarreeBlancheSelonFormat($cote) { |
530,8 → 546,10 |
umask(0); |
|
$nom_temp = md5(time()); |
$out = '/home/aurelien/web/file_tmp/'.$nom_temp; |
$chemin_temp = |
|
$out = $this->config['cel_db']['chemin_stockage_temp'].'/'.$nom_temp; |
|
$dimension_vignettes = $this->obtenirDimensionsPourFormat($format); |
|
$largeur_vignette = $dimension_vignettes['largeur']; |