diff --git a/changes.xml b/changes.xml
index 9ab4a2f2..f676f28c 100644
--- a/changes.xml
+++ b/changes.xml
@@ -40,6 +40,9 @@
In Media Handler 1.x web renditions (starting with cq5dam.web.
prefix) and all other renditions except thumbnails (starting with cq5dam.thumbnail.
prefix) were processed.
The MediaHandlerConfig
contains a new method getIncludeAssetAemRenditionsByDefault
that controls this behavior and allows to switch to the previous setting.
]]>
+ MediaHandlerConfig: Change default image quality for lossy compression image (e.g. JPG) to 85%. In previous versions this was 98%. You can change the default value in the MediaHandlerConfig.
+ ]]>
MediaFileServlet: Force Content-Disposition=attachment header for SVG files served by MediaFileServlet. Also ensure URLs to SVG images are always handled by MediaFileServlet.
diff --git a/src/main/java/io/wcm/handler/media/spi/MediaHandlerConfig.java b/src/main/java/io/wcm/handler/media/spi/MediaHandlerConfig.java
index a01c7fe7..5389258b 100644
--- a/src/main/java/io/wcm/handler/media/spi/MediaHandlerConfig.java
+++ b/src/main/java/io/wcm/handler/media/spi/MediaHandlerConfig.java
@@ -50,7 +50,7 @@ public abstract class MediaHandlerConfig implements ContextAwareService {
/**
* Default image quality for images with lossy compressions (e.g. JPEG).
*/
- public static final double DEFAULT_IMAGE_QUALITY = 0.98d;
+ public static final double DEFAULT_IMAGE_QUALITY = 0.85d;
/**
* Default value for JPEG quality.
diff --git a/src/test/java/io/wcm/handler/media/impl/MediaHandlerImplImageFileTypesEnd2EndWebOptimizedImageDeliveryTest.java b/src/test/java/io/wcm/handler/media/impl/MediaHandlerImplImageFileTypesEnd2EndWebOptimizedImageDeliveryTest.java
index 62fe3d38..5f22bc46 100644
--- a/src/test/java/io/wcm/handler/media/impl/MediaHandlerImplImageFileTypesEnd2EndWebOptimizedImageDeliveryTest.java
+++ b/src/test/java/io/wcm/handler/media/impl/MediaHandlerImplImageFileTypesEnd2EndWebOptimizedImageDeliveryTest.java
@@ -49,7 +49,7 @@ void setUp() {
void testAsset_JPEG_Original() {
Asset asset = createSampleAsset("/filetype/sample.jpg", ContentType.JPEG);
buildAssertMedia(asset, 100, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?preferwebp=true&quality=98",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?preferwebp=true&quality=85",
ContentType.JPEG);
}
@@ -67,7 +67,7 @@ void testAsset_JPEG_Original_WebOptimizedImageDeliveryDisabled() {
void testAsset_JPEG_Rescale() {
Asset asset = createSampleAsset("/filetype/sample.jpg", ContentType.JPEG);
buildAssertMedia_Rescale(asset, 80, 40,
- "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?preferwebp=true&quality=98&width=80",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?preferwebp=true&quality=85&width=80",
ContentType.JPEG);
}
@@ -76,7 +76,7 @@ void testAsset_JPEG_Rescale() {
void testAsset_JPEG_AutoCrop() {
Asset asset = createSampleAsset("/filetype/sample.jpg", ContentType.JPEG);
buildAssertMedia_AutoCrop(asset, 50, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?c=25%2C0%2C50%2C50&preferwebp=true&quality=98&width=50",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?c=25%2C0%2C50%2C50&preferwebp=true&quality=85&width=50",
ContentType.JPEG);
}
@@ -95,7 +95,7 @@ void testAsset_JPEG_CropWithExplicitRendition() {
Asset asset = createSampleAsset("/filetype/sample.jpg", ContentType.JPEG);
context.create().assetRendition(asset, "square.jpg", 50, 50, ContentType.JPEG);
buildAssertMedia_AutoCrop(asset, 50, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?c=25%2C0%2C50%2C50&preferwebp=true&quality=98&width=50",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?c=25%2C0%2C50%2C50&preferwebp=true&quality=85&width=50",
ContentType.JPEG);
}
@@ -104,7 +104,7 @@ void testAsset_JPEG_CropWithExplicitRendition() {
void testAsset_GIF_Original() {
Asset asset = createSampleAsset("/filetype/sample.gif", ContentType.GIF);
buildAssertMedia(asset, 100, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.gif?preferwebp=true&quality=98",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.gif?preferwebp=true&quality=85",
ContentType.GIF);
}
@@ -113,7 +113,7 @@ void testAsset_GIF_Original() {
void testAsset_GIF_Rescale() {
Asset asset = createSampleAsset("/filetype/sample.gif", ContentType.GIF);
buildAssertMedia_Rescale(asset, 80, 40,
- "/asset/delivery/" + getAssetId(asset) + "/sample.gif?preferwebp=true&quality=98&width=80",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.gif?preferwebp=true&quality=85&width=80",
ContentType.GIF);
}
@@ -122,7 +122,7 @@ void testAsset_GIF_Rescale() {
void testAsset_GIF_AutoCrop() {
Asset asset = createSampleAsset("/filetype/sample.gif", ContentType.GIF);
buildAssertMedia_AutoCrop(asset, 50, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.gif?c=25%2C0%2C50%2C50&preferwebp=true&quality=98&width=50",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.gif?c=25%2C0%2C50%2C50&preferwebp=true&quality=85&width=50",
ContentType.GIF);
}
@@ -131,7 +131,7 @@ void testAsset_GIF_AutoCrop() {
void testAsset_PNG_Original() {
Asset asset = createSampleAsset("/filetype/sample.png", ContentType.PNG);
buildAssertMedia(asset, 100, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.png?preferwebp=true&quality=98",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.png?preferwebp=true&quality=85",
ContentType.PNG);
}
@@ -140,7 +140,7 @@ void testAsset_PNG_Original() {
void testAsset_PNG_Rescale() {
Asset asset = createSampleAsset("/filetype/sample.png", ContentType.PNG);
buildAssertMedia_Rescale(asset, 80, 40,
- "/asset/delivery/" + getAssetId(asset) + "/sample.png?preferwebp=true&quality=98&width=80",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.png?preferwebp=true&quality=85&width=80",
ContentType.PNG);
}
@@ -149,7 +149,7 @@ void testAsset_PNG_Rescale() {
void testAsset_PNG_AutoCrop() {
Asset asset = createSampleAsset("/filetype/sample.png", ContentType.PNG);
buildAssertMedia_AutoCrop(asset, 50, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.png?c=25%2C0%2C50%2C50&preferwebp=true&quality=98&width=50",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.png?c=25%2C0%2C50%2C50&preferwebp=true&quality=85&width=50",
ContentType.PNG);
}
@@ -158,7 +158,7 @@ void testAsset_PNG_AutoCrop() {
void testAsset_TIFF_Original() {
Asset asset = createSampleAsset("/filetype/sample.tif", ContentType.TIFF);
buildAssertMedia(asset, 100, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?preferwebp=true&quality=98",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?preferwebp=true&quality=85",
ContentType.JPEG);
}
@@ -167,7 +167,7 @@ void testAsset_TIFF_Original() {
void testAsset_TIFF_Rescale() {
Asset asset = createSampleAsset("/filetype/sample.tif", ContentType.TIFF);
buildAssertMedia_Rescale(asset, 80, 40,
- "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?preferwebp=true&quality=98&width=80",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?preferwebp=true&quality=85&width=80",
ContentType.JPEG);
}
@@ -176,7 +176,7 @@ void testAsset_TIFF_Rescale() {
void testAsset_TIFF_AutoCrop() {
Asset asset = createSampleAsset("/filetype/sample.tif", ContentType.TIFF);
buildAssertMedia_AutoCrop(asset, 50, 50,
- "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?c=25%2C0%2C50%2C50&preferwebp=true&quality=98&width=50",
+ "/asset/delivery/" + getAssetId(asset) + "/sample.jpg?c=25%2C0%2C50%2C50&preferwebp=true&quality=85&width=50",
ContentType.JPEG);
}
diff --git a/src/test/java/io/wcm/handler/mediasource/dam/DamUriTemplateRenditionTest.java b/src/test/java/io/wcm/handler/mediasource/dam/DamUriTemplateRenditionTest.java
index ba3acb68..f614e091 100644
--- a/src/test/java/io/wcm/handler/mediasource/dam/DamUriTemplateRenditionTest.java
+++ b/src/test/java/io/wcm/handler/mediasource/dam/DamUriTemplateRenditionTest.java
@@ -139,7 +139,7 @@ void testOriginal_WebOptimizedImageDelivery() {
.build();
assertUriTemplate(media.getRendition(), SCALE_WIDTH, 192, 120,
- "/asset/delivery/" + assetId + "/sample.jpg?preferwebp=true&quality=98&width={width}");
+ "/asset/delivery/" + assetId + "/sample.jpg?preferwebp=true&quality=85&width={width}");
assertUriTemplate(media.getRendition(), SCALE_HEIGHT, 192, 120,
"/content/dam/folder1/sample.jpg/_jcr_content/renditions/original.image_file.0.{height}.file/sample.jpg");
}
@@ -184,7 +184,7 @@ void test4_3_WebOptimizedImageDelivery() {
.build();
assertUriTemplate(media.getRendition(), SCALE_WIDTH, 160, 120,
- "/asset/delivery/" + assetId + "/sample.jpg?c=16%2C0%2C160%2C120&preferwebp=true&quality=98&width={width}");
+ "/asset/delivery/" + assetId + "/sample.jpg?c=16%2C0%2C160%2C120&preferwebp=true&quality=85&width={width}");
assertUriTemplate(media.getRendition(), SCALE_HEIGHT, 160, 120,
"/content/dam/folder1/sample.jpg/_jcr_content/renditions/original.image_file.0.{height}.16,0,176,120.file/sample.jpg");
}
diff --git a/src/test/java/io/wcm/handler/mediasource/dam/DamUriTemplateTest.java b/src/test/java/io/wcm/handler/mediasource/dam/DamUriTemplateTest.java
index 92d49dc7..34f24077 100644
--- a/src/test/java/io/wcm/handler/mediasource/dam/DamUriTemplateTest.java
+++ b/src/test/java/io/wcm/handler/mediasource/dam/DamUriTemplateTest.java
@@ -111,9 +111,9 @@ void testGetUriTemplate_WebOptimizedImageDelivery() {
Media media = mediaHandler.get(asset.getPath()).build();
assertUriTemplate(media, CROP_CENTER, 100, 50,
- "/asset/delivery/" + assetId + "/sample.jpg?preferwebp=true&quality=98&width={width}");
+ "/asset/delivery/" + assetId + "/sample.jpg?preferwebp=true&quality=85&width={width}");
assertUriTemplate(media, SCALE_WIDTH, 100, 50,
- "/asset/delivery/" + assetId + "/sample.jpg?preferwebp=true&quality=98&width={width}");
+ "/asset/delivery/" + assetId + "/sample.jpg?preferwebp=true&quality=85&width={width}");
assertUriTemplate(media, SCALE_HEIGHT, 100, 50,
"/content/dam/sample.jpg/_jcr_content/renditions/original.image_file.0.{height}.file/sample.jpg");
}