# HG changeset patch # User Matti Hamalainen # Date 1544277062 -7200 # Node ID 3af3b3f50cb079a27b7bb43a40a27c0330553d43 # Parent abcd21b0182973b2c8101ddb96f0f8c155c06543 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. diff -r abcd21b01829 -r 3af3b3f50cb0 mgallery.inc.php --- 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], diff -r abcd21b01829 -r 3af3b3f50cb0 mgtool.php --- 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); } }