diff --git a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorExtend.cs b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorExtend.cs index cd46673bf..6ee78d885 100644 --- a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorExtend.cs +++ b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorExtend.cs @@ -41,12 +41,13 @@ namespace Artemis.Profiles.Layers.Types.AmbientLight.AmbienceCreator if (widthPixels <= 0 || heightPixels <= 0 || (relevantSourceHeight + relevantOffsetTop > sourceHeight) || effectiveSourceWidth > sourceWidth) return colors.ToBGRArray(); - for (int y = 0; y < relevantSourceHeight; y += 2) + int increment = Math.Max(1, Math.Min(20, settings.Downsampling)); + for (int y = 0; y < relevantSourceHeight; y += increment) { int targetWidthIndex = 0; double widthCounter = widthPixels; - for (int x = 0; x < effectiveSourceWidth; x += 2) + for (int x = 0; x < effectiveSourceWidth; x += increment) { if (x >= widthCounter) { diff --git a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorMirror.cs b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorMirror.cs index c096664d4..3d4569eed 100644 --- a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorMirror.cs +++ b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorMirror.cs @@ -44,7 +44,8 @@ namespace Artemis.Profiles.Layers.Types.AmbientLight.AmbienceCreator int targetHeightIndex = 0; double heightCounter = heightPixels; - for (int y = 0; y < relevantSourceHeight; y += 2) + int increment = Math.Max(1, Math.Min(20, settings.Downsampling)); + for (int y = 0; y < relevantSourceHeight; y += increment) { if (y >= heightCounter) { @@ -55,7 +56,7 @@ namespace Artemis.Profiles.Layers.Types.AmbientLight.AmbienceCreator int targetWidthIndex = 0; double widthCounter = widthPixels; - for (int x = 0; x < effectiveSourceWidth; x += 2) + for (int x = 0; x < effectiveSourceWidth; x += increment) { if (x >= widthCounter) { diff --git a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesModel.cs b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesModel.cs index 0559aea6a..5579ae504 100644 --- a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesModel.cs +++ b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesModel.cs @@ -20,6 +20,7 @@ namespace Artemis.Profiles.Layers.Types.AmbientLight public int OffsetTop { get; set; } = 0; public int OffsetBottom { get; set; } = 0; + public int Downsampling { get; set; } = 2; public double MirroredAmount { get; set; } = 10; public SmoothMode SmoothMode { get; set; } = SmoothMode.Low; diff --git a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesView.xaml b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesView.xaml index 3ff68ebaf..78a0e2118 100644 --- a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesView.xaml +++ b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesView.xaml @@ -61,11 +61,16 @@ - + + + +