Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3055 → Rev 3056

/trunk/jrest/bibliotheque/ImageRecreation.php
639,7 → 639,7
$img->modulateImage(100,0,100); // grayscale
$img->blackThresholdImage("#0f0f0f");
$retour_ecriture_img = $img->writeImage($out);
 
if ($retour_ecriture_img !== true) {
error_log("Erreur d'écriture Imagick : [" . $chemin_image . "] vers [" . $out . "]");
$erreur_ecriture = true;
652,6 → 652,7
$erreur_ecriture = true;
}
} catch (ImagickException $e) {
echo "/i";
// En principe si on se trouve ici c'est que l'image est vide
$erreur_ecriture = true;
$image_sortie = false;
680,6 → 681,7
$wcrop0 = round($ar*$hauteur_image_originale);
$hcrop0 = $hauteur_image_originale;
} else {
// source AR wider than target
// crop height to target AR
$wcrop0 = $largeur_image_originale;
$hcrop0 = round($largeur_image_originale/$ar);
737,7 → 739,26
 
// écrasement de l'image par la version "croppée"
$imgcp->cropImage($maxparam['w'], $maxparam['h'], $maxparam['x'], $maxparam['y']);
$imgcp->scaleImage($largeur_vignette, $hauteur_vignette);
// retailler correctement si au moins une des dimensions de l'image produite est
// inférieure aux dimensions demandées
$geo = $imgcp->getImageGeometry();
$ratio_la = $geo['width'] / $largeur_vignette;
$ratio_ha = $geo['height'] / $hauteur_vignette;
if ($ratio_la < 1 || $ratio_ha < 1) {
// cas kipu - on agrandit au max la dimension ayant le ratio le plus faible
// (= le plus d'écart avec la taille attendue)
if ($ratio_la < $ratio_ha) {
$imgcp->scaleImage($largeur_vignette, 0);
} else {
$imgcp->scaleImage(0, $hauteur_vignette);
}
// puis on recoupe en centrant à l'arrache - bizarre que le script ne fasse pas ça de base :-/
$geo = $imgcp->getImageGeometry();
$imgcp->cropImage($largeur_vignette, $hauteur_vignette, max(0, floor($geo['width'] / 2 - $largeur_vignette / 2)), max(0, floor($geo['height'] / 2 - $hauteur_vignette / 2)));
} else {
// cas général
$imgcp->scaleImage($largeur_vignette, $hauteur_vignette, false);
}
$imgcp->writeImage($out);
 
// return image
756,4 → 777,4
 
return $image_sortie;
}
}
}