Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 667 → Rev 668

/trunk/jrest/lib/ImageRecreation.php
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,12 → 31,7
 
if (is_numeric($id_debut) && is_numeric($id_fin)) {
//echo("Début du traitement des images de ".$id_debut." à ".$id_fin."\n");
for ($i = $id_debut; $i <= $id_fin; $i++) {
echo($i."\n");
for ($i = $id_debut; $i <= $id_fin; $i++) {;
$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 {
116,8 → 97,8
}
}
}
public function creerEtStockerMiniatureFichierImageSelonFormat($id ,$infos_image_originale, $format = 'O') {
public function creerMiniatureImageSelonFormat($infos_image_originale, $format = 'O') {
if ($format == 'O') {
// format original : rien à faire
143,6 → 124,13
$image_redimensionnee = $this->creerMiniature($infos_image_originale, $format);
}
}
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,16 → 199,26
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);
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 = array();
$image_et_infos = false;
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;
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'];