Version 1.1

-réécriture de la fonction create_thumb: pour les images format portrait, les vignettes sont redimensionner à 300px de large, puis cropées à 300x200. Toutes les vignettes sont au format paysage.
-quelques corrections de bugs
This commit is contained in:
2025-02-13 17:38:01 +01:00
parent b35196fdb8
commit f0fa8b6efc
4 changed files with 81 additions and 14 deletions

View File

@@ -201,12 +201,49 @@ function get_gps($exif) {
function create_thumb($thumb_w, $thumb_h, $image) {
global $chemin;
list($origin_w, $origin_h) = getimagesize($image);
$origin_ratio = round($origin_w / $origin_h, 1);
$outFile = str_replace("img", "thumb", $chemin) . basename($image);
$new_w = 300;
$new_h = 200;
//$f = $chemin . $image;
$thumb = new Imagick($image);
list($origin_w, $origin_h) = getimagesize($image);
$origin_ratio = round($origin_w / $origin_h, 1);
$outFile = str_replace("../photos/img", "../photos/thumb", $image);
if ($origin_w != null && $origin_h != null) {
if ($origin_w > $origin_h) {
$resize_w = $origin_w * $new_h / $origin_h;
$resize_h = $new_h;
//$thumb->resizeImage($resize_w, $resize_h, Imagick::FILTER_LANCZOS, 0.9);
$thumb->resizeImage($resize_w, $resize_h, Imagick::FILTER_CATROM, 0.9);
}
else {
if ($origin_w != null && $origin_h != null) {
$resize_w = $new_w;
$resize_h = $origin_h * $new_w / $origin_w; // 450
$thumb->resizeImage($resize_w, $resize_h, Imagick::FILTER_CATROM, 0.9); // 300 x 300
$thumb->cropImage($new_w, $new_h, ($resize_w - $new_w) / 2, ($resize_h - $new_h) / 2); // (w, h, x ,y) (xy coin haut gauche) (300, 200, 0, 125)
}
//$image->sharpenimage($radius, $sigma, $channel); // 5, 1
$thumb->sharpenimage(5, 1);
$thumb->setImageCompression(Imagick::COMPRESSION_ZIP);
// Set compression level (1 lowest quality, 100 highest quality)
$thumb->setImageCompressionQuality(75);
// Strip out unneeded meta data
$thumb->stripImage();
$thumb->writeImage($outFile);
$thumb->destroy();
/*
if ($thumb_w / $thumb_h > $origin_ratio) {
$thumb_w = $thumb_h * $origin_ratio;
} else {
@@ -219,8 +256,11 @@ if ($origin_w != null && $origin_h != null) {
$image->writeImage($outFile);
$image->destroy();
}
*/
}
}
}
/* Fonction in_bdd(): test si la photo est déjà dans la bdd
@@ -399,6 +439,11 @@ function data_for_lightbox($data) {
$latitude = $data['lat'];
$longitude = $data['long'];
$altitude = $data['alt'];
$width = $data['width'];
$height = $data['height'];
//echo $width . "-" . $height;
$gps = (!empty($longitude) && !empty($latitude)) ? $latitude . "," . $longitude : "";
//$gps = $longitude . "," . $latitude;
@@ -488,6 +533,8 @@ function data_for_lightbox($data) {
$lightbox['creator'] = $creator;
$lightbox['gps'] = $gps;
$lightbox['description'] = $description;
$lightbox['width'] = $width;
$lightbox['height'] = $height;
/*
Array