mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-29 17:02:05 +13:00
Added auto JPEG quality option
This commit is contained in:
parent
7cce221b30
commit
09c659bbe8
6 changed files with 3757 additions and 1194 deletions
|
@ -2529,7 +2529,7 @@ public static MemoryStream SaveJPEGAutoQuality(Image img, int sizeLimit, int qua
|
|||
|
||||
ms = SaveJPEG(img, quality, false);
|
||||
|
||||
//Console.WriteLine($"Quality: {quality} - Size: {ms.Length.ToSizeString()}");
|
||||
//DebugHelper.WriteLine($"Quality: {quality}% - Size: {ms.Length.ToSizeString()}");
|
||||
|
||||
if (ms.Length <= sizeLimit)
|
||||
{
|
||||
|
|
10
ShareX/Forms/TaskSettingsForm.Designer.cs
generated
10
ShareX/Forms/TaskSettingsForm.Designer.cs
generated
|
@ -293,6 +293,7 @@ private void InitializeComponent()
|
|||
this.pgTaskSettings = new System.Windows.Forms.PropertyGrid();
|
||||
this.chkOverrideAdvancedSettings = new System.Windows.Forms.CheckBox();
|
||||
this.tttvMain = new ShareX.HelpersLib.TabToTreeView();
|
||||
this.cbImageAutoJPEGQuality = new System.Windows.Forms.CheckBox();
|
||||
this.tcTaskSettings.SuspendLayout();
|
||||
this.tpTask.SuspendLayout();
|
||||
this.cmsDestinations.SuspendLayout();
|
||||
|
@ -905,6 +906,7 @@ private void InitializeComponent()
|
|||
//
|
||||
// pImage
|
||||
//
|
||||
this.pImage.Controls.Add(this.cbImageAutoJPEGQuality);
|
||||
this.pImage.Controls.Add(this.cbImagePNGBitDepth);
|
||||
this.pImage.Controls.Add(this.lblImagePNGBitDepth);
|
||||
this.pImage.Controls.Add(this.cbImageAutoUseJPEG);
|
||||
|
@ -2543,6 +2545,13 @@ private void InitializeComponent()
|
|||
this.tttvMain.TreeViewSize = 190;
|
||||
this.tttvMain.TabChanged += new ShareX.HelpersLib.TabToTreeView.TabChangedEventHandler(this.tttvMain_TabChanged);
|
||||
//
|
||||
// cbImageAutoJPEGQuality
|
||||
//
|
||||
resources.ApplyResources(this.cbImageAutoJPEGQuality, "cbImageAutoJPEGQuality");
|
||||
this.cbImageAutoJPEGQuality.Name = "cbImageAutoJPEGQuality";
|
||||
this.cbImageAutoJPEGQuality.UseVisualStyleBackColor = true;
|
||||
this.cbImageAutoJPEGQuality.CheckedChanged += new System.EventHandler(this.cbImageAutoJPEGQuality_CheckedChanged);
|
||||
//
|
||||
// TaskSettingsForm
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
|
@ -2907,5 +2916,6 @@ private void InitializeComponent()
|
|||
private System.Windows.Forms.Label lblToastWindowFadeDurationSeconds;
|
||||
private System.Windows.Forms.Label lblToastWindowDurationSeconds;
|
||||
private System.Windows.Forms.Button btnActions;
|
||||
private System.Windows.Forms.CheckBox cbImageAutoJPEGQuality;
|
||||
}
|
||||
}
|
|
@ -235,7 +235,9 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
cbImageGIFQuality.SelectedIndex = (int)TaskSettings.ImageSettings.ImageGIFQuality;
|
||||
cbImageAutoUseJPEG.Checked = TaskSettings.ImageSettings.ImageAutoUseJPEG;
|
||||
nudImageAutoUseJPEGSize.Enabled = TaskSettings.ImageSettings.ImageAutoUseJPEG;
|
||||
cbImageAutoJPEGQuality.Enabled = TaskSettings.ImageSettings.ImageAutoUseJPEG;
|
||||
nudImageAutoUseJPEGSize.SetValue(TaskSettings.ImageSettings.ImageAutoUseJPEGSize);
|
||||
cbImageAutoJPEGQuality.Checked = TaskSettings.ImageSettings.ImageAutoJPEGQuality;
|
||||
cbImageFileExist.Items.Clear();
|
||||
cbImageFileExist.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<FileExistAction>());
|
||||
cbImageFileExist.SelectedIndex = (int)TaskSettings.ImageSettings.FileExistAction;
|
||||
|
@ -924,6 +926,7 @@ private void cbImageAutoUseJPEG_CheckedChanged(object sender, EventArgs e)
|
|||
{
|
||||
TaskSettings.ImageSettings.ImageAutoUseJPEG = cbImageAutoUseJPEG.Checked;
|
||||
nudImageAutoUseJPEGSize.Enabled = TaskSettings.ImageSettings.ImageAutoUseJPEG;
|
||||
cbImageAutoJPEGQuality.Enabled = TaskSettings.ImageSettings.ImageAutoUseJPEG;
|
||||
}
|
||||
|
||||
private void nudImageAutoUseJPEGSize_ValueChanged(object sender, EventArgs e)
|
||||
|
@ -931,6 +934,11 @@ private void nudImageAutoUseJPEGSize_ValueChanged(object sender, EventArgs e)
|
|||
TaskSettings.ImageSettings.ImageAutoUseJPEGSize = (int)nudImageAutoUseJPEGSize.Value;
|
||||
}
|
||||
|
||||
private void cbImageAutoJPEGQuality_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
TaskSettings.ImageSettings.ImageAutoJPEGQuality = cbImageAutoJPEGQuality.Checked;
|
||||
}
|
||||
|
||||
private void cbImageFileExist_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
TaskSettings.ImageSettings.FileExistAction = (FileExistAction)cbImageFileExist.SelectedIndex;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -273,7 +273,16 @@ public static ImageData PrepareImage(Image img, TaskSettings taskSettings)
|
|||
imageData.ImageStream.Length > taskSettings.ImageSettings.ImageAutoUseJPEGSize * 1000)
|
||||
{
|
||||
imageData.ImageStream.Dispose();
|
||||
imageData.ImageStream = SaveImageAsStream(img, EImageFormat.JPEG, taskSettings);
|
||||
|
||||
if (taskSettings.ImageSettings.ImageAutoJPEGQuality)
|
||||
{
|
||||
imageData.ImageStream = ImageHelpers.SaveJPEGAutoQuality(img, taskSettings.ImageSettings.ImageAutoUseJPEGSize * 1000, 2, 70, 100);
|
||||
}
|
||||
else
|
||||
{
|
||||
imageData.ImageStream = ImageHelpers.SaveJPEG(img, taskSettings.ImageSettings.ImageJPEGQuality);
|
||||
}
|
||||
|
||||
imageData.ImageFormat = EImageFormat.JPEG;
|
||||
}
|
||||
|
||||
|
|
|
@ -313,6 +313,7 @@ public class TaskSettingsImage
|
|||
public GIFQuality ImageGIFQuality = GIFQuality.Default;
|
||||
public bool ImageAutoUseJPEG = true;
|
||||
public int ImageAutoUseJPEGSize = 2048;
|
||||
public bool ImageAutoJPEGQuality = false;
|
||||
public FileExistAction FileExistAction = FileExistAction.Ask;
|
||||
|
||||
#endregion Image / General
|
||||
|
|
Loading…
Reference in a new issue