Add JPEG screenshot quality setting

This commit is contained in:
Poliwrath 2020-07-24 02:00:18 -04:00
parent 4d7d4a7c7a
commit 4e0f16a450
3 changed files with 11 additions and 1 deletions

View File

@ -106,6 +106,7 @@ namespace osu.Game.Configuration
Set(OsuSetting.Version, string.Empty);
Set(OsuSetting.ScreenshotFormat, ScreenshotFormat.Jpg);
Set(OsuSetting.ScreenshotJpegQuality, 75, 0, 100);
Set(OsuSetting.ScreenshotCaptureMenuCursor, false);
Set(OsuSetting.SongSelectRightMouseScroll, false);
@ -212,6 +213,7 @@ namespace osu.Game.Configuration
ShowConvertedBeatmaps,
Skin,
ScreenshotFormat,
ScreenshotJpegQuality,
ScreenshotCaptureMenuCursor,
SongSelectRightMouseScroll,
BeatmapSkins,

View File

@ -19,6 +19,7 @@ using osu.Game.Input.Bindings;
using osu.Game.Overlays;
using osu.Game.Overlays.Notifications;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats.Jpeg;
namespace osu.Game.Graphics
{
@ -33,6 +34,7 @@ namespace osu.Game.Graphics
public IBindable<bool> CursorVisibility => cursorVisibility;
private Bindable<ScreenshotFormat> screenshotFormat;
private Bindable<int> screenshotJpegQuality;
private Bindable<bool> captureMenuCursor;
[Resolved]
@ -51,6 +53,7 @@ namespace osu.Game.Graphics
this.storage = storage.GetStorageForDirectory(@"screenshots");
screenshotFormat = config.GetBindable<ScreenshotFormat>(OsuSetting.ScreenshotFormat);
screenshotJpegQuality = config.GetBindable<int>(OsuSetting.ScreenshotJpegQuality);
captureMenuCursor = config.GetBindable<bool>(OsuSetting.ScreenshotCaptureMenuCursor);
shutter = audio.Samples.Get("UI/shutter");
@ -119,7 +122,7 @@ namespace osu.Game.Graphics
break;
case ScreenshotFormat.Jpg:
image.SaveAsJpeg(stream);
image.SaveAsJpeg(stream, new JpegEncoder { Quality = screenshotJpegQuality.Value });
break;
default:

View File

@ -31,6 +31,11 @@ namespace osu.Game.Overlays.Settings.Sections.Graphics
LabelText = "Screenshot format",
Bindable = config.GetBindable<ScreenshotFormat>(OsuSetting.ScreenshotFormat)
},
new SettingsSlider<int>
{
LabelText = "JPEG Screenshot quality",
Bindable = config.GetBindable<int>(OsuSetting.ScreenshotJpegQuality)
},
new SettingsCheckbox
{
LabelText = "Show menu cursor in screenshots",