changeset 250:3af3b3f50cb0

Add settings for med_format and tn_format (currently allowed values are "jpeg" and "webp") to specify the med/tn image formats. The default is JPEG.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 08 Dec 2018 15:51:02 +0200
parents abcd21b01829
children 19dab8b0c340
files mgallery.inc.php mgtool.php
diffstat 2 files changed, 21 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/mgallery.inc.php	Mon Oct 29 20:32:59 2018 +0200
+++ b/mgallery.inc.php	Sat Dec 08 15:51:02 2018 +0200
@@ -61,7 +61,7 @@
   "base_url"         => [MG_STR, mgPathName($_SERVER["PHP_SELF"])],
   "image_url"        => [MG_STR, mgPathName($_SERVER["PHP_SELF"])],
   "mgallery_php"     => [MG_STR, "mgallery.php"],
-  "format_exts"      => [MG_STR, "\.jpg|\.png|\.gif|\.jpeg"],
+  "format_exts"      => [MG_STR, "\.jpg|\.png|\.gif|\.jpeg|\.webp"],
   "captions_file"    => [MG_STR, "captions.txt"],
   "header_file"      => [MG_STR, "header.txt"],
   "info_file"        => [MG_STR, "gallery.info"],
@@ -85,10 +85,12 @@
   "tn_path"          => [MG_STR, "tn/"],
   "med_path"         => [MG_STR, "med/"],
 
+  "tn_format"        => [MG_STR, "jpeg"],
   "tn_width"         => [MG_INT, 140],  // In pixels, applies as bounding box for w/h
   "tn_height"        => [MG_INT, 100],
   "tn_quality"       => [MG_INT, 85],   // JPEG quality percent
 
+  "med_format"       => [MG_STR, "jpeg"],
   "med_width"        => [MG_INT, 960],
   "med_height"       => [MG_INT, 640],
   "med_quality"      => [MG_INT, 90],
--- a/mgtool.php	Mon Oct 29 20:32:59 2018 +0200
+++ b/mgtool.php	Sat Dec 08 15:51:02 2018 +0200
@@ -109,10 +109,23 @@
     }
   }
 
+  $img->setImageDepth(8);
+  switch (strtolower($outFormat))
+  {
+    case "jpeg":
+      $img->setFormat("JPEG");
+      $img->setImageCompression(Imagick::COMPRESSION_JPEG);
+      break;
 
-  $img->setImageDepth(8);
-  $img->setFormat($outFormat);
-  $img->setImageCompression(Imagick::COMPRESSION_JPEG);
+    case "webp":
+      $img->setFormat("webp");
+      $img->setOption('webp:method', '6');
+      break;
+
+     default:
+      return mgError("Unsupported MGallery med/tn format '".$tfmt."'.\n");
+  }
+
   $img->setImageCompressionQuality($outQuality);
 
   $img->stripImage();
@@ -608,7 +621,7 @@
             echo "1";
             mgConvertImage($efilename, $medFilename,
               [mgGetSetting("med_width"), mgGetSetting("med_height")],
-              "JPEG", mgGetSetting("med_quality"), TRUE);
+              mgGetSetting("med_format"), mgGetSetting("med_quality"), TRUE);
           }
 
           if ($updFlags & GUPD_TN_IMAGE)
@@ -616,7 +629,7 @@
             echo "2";
             mgConvertImage($efilename, $tnFilename,
               [mgGetSetting("tn_width"), mgGetSetting("tn_height")],
-              "JPEG", mgGetSetting("tn_quality"), TRUE);
+              mgGetSetting("tn_quality"), TRUE);
           }
         }