Added "Image beautifier" tool

This commit is contained in:
Jaex 2023-04-24 17:33:40 +03:00
parent 96f9cc1493
commit e4f55a474a
13 changed files with 735 additions and 116 deletions

View file

@ -0,0 +1,215 @@
namespace ShareX.MediaLib
{
partial class ImageBeautifierForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lblMargin = new System.Windows.Forms.Label();
this.tbMargin = new System.Windows.Forms.TrackBar();
this.lblPadding = new System.Windows.Forms.Label();
this.tbPadding = new System.Windows.Forms.TrackBar();
this.cbSmartPadding = new System.Windows.Forms.CheckBox();
this.lblRoundedCorner = new System.Windows.Forms.Label();
this.tbRoundedCorner = new System.Windows.Forms.TrackBar();
this.lblShadowSize = new System.Windows.Forms.Label();
this.tbShadowSize = new System.Windows.Forms.TrackBar();
this.lblBackground = new System.Windows.Forms.Label();
this.pbPreview = new System.Windows.Forms.PictureBox();
this.pPreview = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.tbMargin)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tbPadding)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tbRoundedCorner)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tbShadowSize)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pbPreview)).BeginInit();
this.pPreview.SuspendLayout();
this.SuspendLayout();
//
// lblMargin
//
this.lblMargin.AutoSize = true;
this.lblMargin.Location = new System.Drawing.Point(13, 16);
this.lblMargin.Name = "lblMargin";
this.lblMargin.Size = new System.Drawing.Size(42, 13);
this.lblMargin.TabIndex = 0;
this.lblMargin.Text = "Margin:";
//
// tbMargin
//
this.tbMargin.Location = new System.Drawing.Point(16, 40);
this.tbMargin.Maximum = 300;
this.tbMargin.Name = "tbMargin";
this.tbMargin.Size = new System.Drawing.Size(256, 45);
this.tbMargin.TabIndex = 1;
this.tbMargin.TickFrequency = 10;
this.tbMargin.Scroll += new System.EventHandler(this.tbMargin_Scroll);
//
// lblPadding
//
this.lblPadding.AutoSize = true;
this.lblPadding.Location = new System.Drawing.Point(13, 96);
this.lblPadding.Name = "lblPadding";
this.lblPadding.Size = new System.Drawing.Size(49, 13);
this.lblPadding.TabIndex = 2;
this.lblPadding.Text = "Padding:";
//
// tbPadding
//
this.tbPadding.Location = new System.Drawing.Point(16, 120);
this.tbPadding.Maximum = 200;
this.tbPadding.Name = "tbPadding";
this.tbPadding.Size = new System.Drawing.Size(256, 45);
this.tbPadding.TabIndex = 3;
this.tbPadding.TickFrequency = 10;
this.tbPadding.Scroll += new System.EventHandler(this.tbPadding_Scroll);
//
// cbSmartPadding
//
this.cbSmartPadding.AutoSize = true;
this.cbSmartPadding.Location = new System.Drawing.Point(16, 168);
this.cbSmartPadding.Name = "cbSmartPadding";
this.cbSmartPadding.Size = new System.Drawing.Size(94, 17);
this.cbSmartPadding.TabIndex = 4;
this.cbSmartPadding.Text = "Smart padding";
this.cbSmartPadding.UseVisualStyleBackColor = true;
this.cbSmartPadding.CheckedChanged += new System.EventHandler(this.cbSmartPadding_CheckedChanged);
//
// lblRoundedCorner
//
this.lblRoundedCorner.AutoSize = true;
this.lblRoundedCorner.Location = new System.Drawing.Point(13, 200);
this.lblRoundedCorner.Name = "lblRoundedCorner";
this.lblRoundedCorner.Size = new System.Drawing.Size(87, 13);
this.lblRoundedCorner.TabIndex = 5;
this.lblRoundedCorner.Text = "Rounded corner:";
//
// tbRoundedCorner
//
this.tbRoundedCorner.Location = new System.Drawing.Point(16, 224);
this.tbRoundedCorner.Maximum = 50;
this.tbRoundedCorner.Name = "tbRoundedCorner";
this.tbRoundedCorner.Size = new System.Drawing.Size(256, 45);
this.tbRoundedCorner.TabIndex = 6;
this.tbRoundedCorner.TickFrequency = 5;
this.tbRoundedCorner.Scroll += new System.EventHandler(this.tbRoundedCorner_Scroll);
//
// lblShadowSize
//
this.lblShadowSize.AutoSize = true;
this.lblShadowSize.Location = new System.Drawing.Point(13, 280);
this.lblShadowSize.Name = "lblShadowSize";
this.lblShadowSize.Size = new System.Drawing.Size(70, 13);
this.lblShadowSize.TabIndex = 7;
this.lblShadowSize.Text = "Shadow size:";
//
// tbShadowSize
//
this.tbShadowSize.Location = new System.Drawing.Point(16, 304);
this.tbShadowSize.Maximum = 100;
this.tbShadowSize.Name = "tbShadowSize";
this.tbShadowSize.Size = new System.Drawing.Size(256, 45);
this.tbShadowSize.TabIndex = 8;
this.tbShadowSize.TickFrequency = 5;
this.tbShadowSize.Scroll += new System.EventHandler(this.tbShadowSize_Scroll);
//
// lblBackground
//
this.lblBackground.AutoSize = true;
this.lblBackground.Location = new System.Drawing.Point(13, 360);
this.lblBackground.Name = "lblBackground";
this.lblBackground.Size = new System.Drawing.Size(68, 13);
this.lblBackground.TabIndex = 9;
this.lblBackground.Text = "Background:";
//
// pbPreview
//
this.pbPreview.Location = new System.Drawing.Point(0, 0);
this.pbPreview.Name = "pbPreview";
this.pbPreview.Size = new System.Drawing.Size(100, 100);
this.pbPreview.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.pbPreview.TabIndex = 11;
this.pbPreview.TabStop = false;
//
// pPreview
//
this.pPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pPreview.AutoScroll = true;
this.pPreview.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pPreview.Controls.Add(this.pbPreview);
this.pPreview.Location = new System.Drawing.Point(288, 8);
this.pPreview.Name = "pPreview";
this.pPreview.Size = new System.Drawing.Size(504, 432);
this.pPreview.TabIndex = 10;
//
// ImageBeautifierForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 447);
this.Controls.Add(this.pPreview);
this.Controls.Add(this.lblBackground);
this.Controls.Add(this.tbShadowSize);
this.Controls.Add(this.lblShadowSize);
this.Controls.Add(this.tbRoundedCorner);
this.Controls.Add(this.lblRoundedCorner);
this.Controls.Add(this.cbSmartPadding);
this.Controls.Add(this.tbPadding);
this.Controls.Add(this.lblPadding);
this.Controls.Add(this.tbMargin);
this.Controls.Add(this.lblMargin);
this.Name = "ImageBeautifierForm";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "ShareX - Image beautifier";
((System.ComponentModel.ISupportInitialize)(this.tbMargin)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.tbPadding)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.tbRoundedCorner)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.tbShadowSize)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pbPreview)).EndInit();
this.pPreview.ResumeLayout(false);
this.pPreview.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblMargin;
private System.Windows.Forms.TrackBar tbMargin;
private System.Windows.Forms.Label lblPadding;
private System.Windows.Forms.TrackBar tbPadding;
private System.Windows.Forms.CheckBox cbSmartPadding;
private System.Windows.Forms.Label lblRoundedCorner;
private System.Windows.Forms.TrackBar tbRoundedCorner;
private System.Windows.Forms.Label lblShadowSize;
private System.Windows.Forms.TrackBar tbShadowSize;
private System.Windows.Forms.Label lblBackground;
private System.Windows.Forms.PictureBox pbPreview;
private System.Windows.Forms.Panel pPreview;
}
}

View file

@ -0,0 +1,154 @@
#region License Information (GPL v3)
/*
ShareX - A program that allows you to take screenshots and share any file type
Copyright (c) 2007-2023 ShareX Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Optionally you can also view the license at <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using ShareX.HelpersLib;
using System.Drawing;
using System.Windows.Forms;
namespace ShareX.MediaLib
{
public partial class ImageBeautifierForm : Form
{
public Bitmap SourceImage { get; private set; }
public Bitmap PreviewImage { get; private set; }
public ImageBeautifierOptions Options { get; private set; }
private bool isReady;
public ImageBeautifierForm(Bitmap sourceImage, ImageBeautifierOptions options = null)
{
SourceImage = sourceImage;
Options = options;
if (Options == null)
{
Options = new ImageBeautifierOptions();
}
InitializeComponent();
ShareXResources.ApplyTheme(this);
Size = new Size(1400, 800);
tbMargin.SetValue(Options.Margin);
tbPadding.SetValue(Options.Padding);
cbSmartPadding.Checked = Options.SmartPadding;
tbRoundedCorner.SetValue(Options.RoundedCorner);
tbShadowSize.SetValue(Options.ShadowSize);
isReady = true;
UpdatePreview();
}
private void UpdatePreview()
{
if (isReady)
{
UpdateOptions();
Bitmap resultImage = RenderPreview(SourceImage, Options);
PreviewImage?.Dispose();
PreviewImage = resultImage;
pbPreview.Image = PreviewImage;
}
}
private static Bitmap RenderPreview(Bitmap sourceImage, ImageBeautifierOptions options)
{
Bitmap resultImage = (Bitmap)sourceImage.Clone();
if (options.SmartPadding)
{
resultImage = ImageHelpers.AutoCropImage(resultImage, true, AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right, options.Padding);
}
else if (options.Padding > 0)
{
Color color = resultImage.GetPixel(0, 0);
Bitmap resultImageNew = ImageHelpers.AddCanvas(resultImage, options.Padding, color);
resultImage.Dispose();
resultImage = resultImageNew;
}
if (options.RoundedCorner > 0)
{
resultImage = ImageHelpers.RoundedCorners(resultImage, options.RoundedCorner);
}
if (options.Margin > 0)
{
Bitmap resultImageNew = ImageHelpers.AddCanvas(resultImage, options.Margin);
resultImage.Dispose();
resultImage = resultImageNew;
}
if (options.ShadowSize > 0)
{
resultImage = ImageHelpers.AddShadow(resultImage, 1f, options.ShadowSize, 0f, Color.Black, new Point(0, 0), false);
}
if (options.Background != null)
{
Bitmap resultImageNew = ImageHelpers.FillBackground(resultImage, options.Background);
resultImage.Dispose();
resultImage = resultImageNew;
}
return resultImage;
}
private void UpdateOptions()
{
Options.Margin = tbMargin.Value;
Options.Padding = tbPadding.Value;
Options.SmartPadding = cbSmartPadding.Checked;
Options.RoundedCorner = tbRoundedCorner.Value;
Options.ShadowSize = tbShadowSize.Value;
}
private void tbMargin_Scroll(object sender, System.EventArgs e)
{
UpdatePreview();
}
private void tbPadding_Scroll(object sender, System.EventArgs e)
{
UpdatePreview();
}
private void cbSmartPadding_CheckedChanged(object sender, System.EventArgs e)
{
UpdatePreview();
}
private void tbRoundedCorner_Scroll(object sender, System.EventArgs e)
{
UpdatePreview();
}
private void tbShadowSize_Scroll(object sender, System.EventArgs e)
{
UpdatePreview();
}
}
}

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,44 @@
#region License Information (GPL v3)
/*
ShareX - A program that allows you to take screenshots and share any file type
Copyright (c) 2007-2023 ShareX Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Optionally you can also view the license at <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using ShareX.HelpersLib;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace ShareX.MediaLib
{
public class ImageBeautifierOptions
{
public int Margin { get; set; } = 80;
public int Padding { get; set; } = 40;
public bool SmartPadding { get; set; } = true;
public int RoundedCorner { get; set; } = 20;
public int ShadowSize { get; set; } = 30;
public GradientInfo Background { get; set; } = new GradientInfo(Color.FromArgb(255, 81, 47), Color.FromArgb(221, 36, 118))
{
Type = LinearGradientMode.ForwardDiagonal
};
}
}

View file

@ -87,6 +87,12 @@
<Compile Include="FFmpegCLIManager.cs" />
<Compile Include="FFmpegDownloader.cs" />
<Compile Include="FFmpegGitHubDownloader.cs" />
<Compile Include="Forms\ImageBeautifierForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\ImageBeautifierForm.Designer.cs">
<DependentUpon>ImageBeautifierForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\ImageCombinerForm.cs">
<SubType>Form</SubType>
</Compile>
@ -117,6 +123,7 @@
<Compile Include="Forms\VideoThumbnailerForm.Designer.cs">
<DependentUpon>VideoThumbnailerForm.cs</DependentUpon>
</Compile>
<Compile Include="ImageBeautifierOptions.cs" />
<Compile Include="ImageCombinerOptions.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
@ -137,6 +144,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Forms\ImageBeautifierForm.resx">
<DependentUpon>ImageBeautifierForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ImageCombinerForm.de.resx">
<DependentUpon>ImageCombinerForm.cs</DependentUpon>
</EmbeddedResource>

View file

@ -80,6 +80,7 @@ private void InitializeComponent()
this.tsmiPinToScreen = new System.Windows.Forms.ToolStripMenuItem();
this.tssTools1 = new System.Windows.Forms.ToolStripSeparator();
this.tsmiImageEditor = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiImageBeautifier = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiImageEffects = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiImageViewer = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiImageCombiner = new System.Windows.Forms.ToolStripMenuItem();
@ -233,6 +234,7 @@ private void InitializeComponent()
this.tsmiTrayPinToScreen = new System.Windows.Forms.ToolStripMenuItem();
this.tssTrayTools1 = new System.Windows.Forms.ToolStripSeparator();
this.tsmiTrayImageEditor = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayImageBeautifier = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayImageEffects = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayImageViewer = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayImageCombiner = new System.Windows.Forms.ToolStripMenuItem();
@ -667,6 +669,7 @@ private void InitializeComponent()
this.tsmiPinToScreen,
this.tssTools1,
this.tsmiImageEditor,
this.tsmiImageBeautifier,
this.tsmiImageEffects,
this.tsmiImageViewer,
this.tsmiImageCombiner,
@ -730,6 +733,13 @@ private void InitializeComponent()
resources.ApplyResources(this.tsmiImageEditor, "tsmiImageEditor");
this.tsmiImageEditor.Click += new System.EventHandler(this.tsmiImageEditor_Click);
//
// tsmiImageBeautifier
//
this.tsmiImageBeautifier.Image = global::ShareX.Properties.Resources.picture_sunset;
this.tsmiImageBeautifier.Name = "tsmiImageBeautifier";
resources.ApplyResources(this.tsmiImageBeautifier, "tsmiImageBeautifier");
this.tsmiImageBeautifier.Click += new System.EventHandler(this.tsmiImageBeautifier_Click);
//
// tsmiImageEffects
//
this.tsmiImageEffects.Image = global::ShareX.Properties.Resources.image_saturation;
@ -1814,6 +1824,7 @@ private void InitializeComponent()
this.tsmiTrayPinToScreen,
this.tssTrayTools1,
this.tsmiTrayImageEditor,
this.tsmiTrayImageBeautifier,
this.tsmiTrayImageEffects,
this.tsmiTrayImageViewer,
this.tsmiTrayImageCombiner,
@ -1877,6 +1888,13 @@ private void InitializeComponent()
resources.ApplyResources(this.tsmiTrayImageEditor, "tsmiTrayImageEditor");
this.tsmiTrayImageEditor.Click += new System.EventHandler(this.tsmiImageEditor_Click);
//
// tsmiTrayImageBeautifier
//
this.tsmiTrayImageBeautifier.Image = global::ShareX.Properties.Resources.picture_sunset;
this.tsmiTrayImageBeautifier.Name = "tsmiTrayImageBeautifier";
resources.ApplyResources(this.tsmiTrayImageBeautifier, "tsmiTrayImageBeautifier");
this.tsmiTrayImageBeautifier.Click += new System.EventHandler(this.tsmiImageBeautifier_Click);
//
// tsmiTrayImageEffects
//
this.tsmiTrayImageEffects.Image = global::ShareX.Properties.Resources.image_saturation;
@ -2521,5 +2539,7 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem tsmiPinSelectedFile;
private System.Windows.Forms.ToolStripMenuItem tsmiPinToScreen;
private System.Windows.Forms.ToolStripMenuItem tsmiTrayPinToScreen;
private System.Windows.Forms.ToolStripMenuItem tsmiImageBeautifier;
private System.Windows.Forms.ToolStripMenuItem tsmiTrayImageBeautifier;
}
}

View file

@ -1731,6 +1731,11 @@ private void tsmiImageEditor_Click(object sender, EventArgs e)
TaskHelpers.OpenImageEditor();
}
private void tsmiImageBeautifier_Click(object sender, EventArgs e)
{
TaskHelpers.OpenImageBeautifier();
}
private void tsmiImageEffects_Click(object sender, EventArgs e)
{
TaskHelpers.OpenImageEffects();

View file

@ -214,7 +214,7 @@
<value>lvUploads</value>
</data>
<data name="&gt;&gt;lvUploads.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=14.1.4.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lvUploads.Parent" xml:space="preserve">
<value>scMain.Panel1</value>
@ -250,7 +250,7 @@
<value>pbPreview</value>
</data>
<data name="&gt;&gt;pbPreview.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=14.1.4.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;pbPreview.Parent" xml:space="preserve">
<value>scMain.Panel2</value>
@ -286,7 +286,7 @@
<value>scMain</value>
</data>
<data name="&gt;&gt;scMain.Type" xml:space="preserve">
<value>ShareX.HelpersLib.SplitContainerCustomSplitter, ShareX.HelpersLib, Version=14.1.4.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.SplitContainerCustomSplitter, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;scMain.Parent" xml:space="preserve">
<value>$this</value>
@ -534,6 +534,12 @@
<data name="tsmiImageEditor.Text" xml:space="preserve">
<value>Image editor...</value>
</data>
<data name="tsmiImageBeautifier.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 22</value>
</data>
<data name="tsmiImageBeautifier.Text" xml:space="preserve">
<value>Image beautifier...</value>
</data>
<data name="tsmiImageEffects.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 22</value>
</data>
@ -928,7 +934,7 @@
<value>tsMain</value>
</data>
<data name="&gt;&gt;tsMain.Type" xml:space="preserve">
<value>ShareX.HelpersLib.ToolStripBorderRight, ShareX.HelpersLib, Version=14.1.4.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.ToolStripBorderRight, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;tsMain.Parent" xml:space="preserve">
<value>pToolbars</value>
@ -1560,6 +1566,12 @@
<data name="tsmiTrayImageEditor.Text" xml:space="preserve">
<value>Image editor...</value>
</data>
<data name="tsmiTrayImageBeautifier.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 22</value>
</data>
<data name="tsmiTrayImageBeautifier.Text" xml:space="preserve">
<value>Image beautifier...</value>
</data>
<data name="tsmiTrayImageEffects.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 22</value>
</data>
@ -1891,7 +1903,7 @@
<value>ucTaskThumbnailView</value>
</data>
<data name="&gt;&gt;ucTaskThumbnailView.Type" xml:space="preserve">
<value>ShareX.TaskThumbnailView, ShareX, Version=14.1.4.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.TaskThumbnailView, ShareX, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;ucTaskThumbnailView.Parent" xml:space="preserve">
<value>pThumbnailView</value>
@ -2241,6 +2253,12 @@
<data name="&gt;&gt;tsmiImageEditor.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsmiImageBeautifier.Name" xml:space="preserve">
<value>tsmiImageBeautifier</value>
</data>
<data name="&gt;&gt;tsmiImageBeautifier.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsmiImageEffects.Name" xml:space="preserve">
<value>tsmiImageEffects</value>
</data>
@ -3147,6 +3165,12 @@
<data name="&gt;&gt;tsmiTrayImageEditor.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsmiTrayImageBeautifier.Name" xml:space="preserve">
<value>tsmiTrayImageBeautifier</value>
</data>
<data name="&gt;&gt;tsmiTrayImageBeautifier.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsmiTrayImageEffects.Name" xml:space="preserve">
<value>tsmiTrayImageEffects</value>
</data>
@ -3433,6 +3457,6 @@
<value>MainForm</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>ShareX.HelpersLib.HotkeyForm, ShareX.HelpersLib, Version=14.1.4.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.HotkeyForm, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

View file

@ -2299,6 +2299,16 @@ public static System.Drawing.Bitmap pencil {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap picture_sunset {
get {
object obj = ResourceManager.GetObject("picture-sunset", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View file

@ -139,9 +139,6 @@
<data name="ActionsForm_btnOK_Click_File_path_can_t_be_empty_" xml:space="preserve">
<value>File path can't be empty.</value>
</data>
<data name="UploadInfoManager_ShowErrors_Upload_errors" xml:space="preserve">
<value>Upload errors</value>
</data>
<data name="image_split" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\image-split.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -151,6 +148,9 @@
<data name="checkbox_uncheck" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\checkbox_uncheck.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="PinToScreen" xml:space="preserve">
<value>Pin to screen</value>
</data>
<data name="AboutForm_AboutForm_Language_pt_PT" xml:space="preserve">
<value>Portuguese</value>
</data>
@ -184,8 +184,8 @@
<data name="QuickTaskMenu_ShowMenu_Cancel" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="UploadTask_DoUploadJob_First_time_upload_warning" xml:space="preserve">
<value>First time upload warning</value>
<data name="clock_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\clock-select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SwitchToThumbnailView" xml:space="preserve">
<value>Switch to thumbnail view</value>
@ -193,6 +193,9 @@
<data name="UploadTask_Stop_Stopping" xml:space="preserve">
<value>Stopping</value>
</data>
<data name="UploadTask_DoUploadJob_First_time_upload_warning" xml:space="preserve">
<value>First time upload warning</value>
</data>
<data name="application_terminal" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-terminal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -214,6 +217,9 @@
<data name="exclamation_button" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\exclamation-button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="HotkeySettingsForm_Reset_all_hotkeys_to_defaults_Confirmation" xml:space="preserve">
<value>Reset all hotkeys to defaults?</value>
</data>
<data name="ActionsToolbar_StayTopMost" xml:space="preserve">
<value>Stay top most</value>
</data>
@ -237,9 +243,6 @@ Would you like to restart ShareX?</value>
<data name="AboutForm_AboutForm_Language_zh_TW" xml:space="preserve">
<value>Traditional Chinese</value>
</data>
<data name="ActionsToolbar_Edit" xml:space="preserve">
<value>Edit...</value>
</data>
<data name="MainForm_UploadDebugLogWarning" xml:space="preserve">
<value>The debug log can contain sensitive information. Are you sure you want to proceed?</value>
</data>
@ -258,6 +261,9 @@ Would you like to restart ShareX?</value>
<data name="AboutForm_AboutForm_Credits" xml:space="preserve">
<value>Credits</value>
</data>
<data name="il" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\il.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application_task" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-task.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -270,18 +276,15 @@ Would you like to restart ShareX?</value>
<data name="TaskSettingsForm_UpdateWindowTitle_Task_settings" xml:space="preserve">
<value>Task settings</value>
</data>
<data name="camcorder_image" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\camcorder-image.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="InspectWindow_ClassName" xml:space="preserve">
<value>Class name</value>
</data>
<data name="MainForm_UpdateMainFormTip_Currently_configured_hotkeys_" xml:space="preserve">
<value>Currently configured hotkeys:</value>
</data>
<data name="TaskSettingsForm_UpdateUploaderMenuNames_URL_shortener___0_" xml:space="preserve">
<value>URL shortener: {0}</value>
</data>
<data name="ro" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ro.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="TaskManager_CreateListViewItem_History" xml:space="preserve">
<value>History</value>
</data>
@ -294,8 +297,8 @@ Would you like to restart ShareX?</value>
<data name="MainForm_UpdateToggleHotkeyButton_Disable_hotkeys" xml:space="preserve">
<value>Disable hotkeys</value>
</data>
<data name="QuickTaskMenuEditorForm_Reset_all_quick_tasks_to_defaults_Confirmation" xml:space="preserve">
<value>Reset all quick tasks to defaults?</value>
<data name="cn" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="br" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\br.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -324,8 +327,8 @@ Would you like to restart ShareX?</value>
<data name="monitor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FileExistForm_txtNewName_TextChanged_Use_new_name__" xml:space="preserve">
<value>Use new name: </value>
<data name="status_away" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status-away.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="clipboard_block" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\clipboard-block.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -343,6 +346,9 @@ Press 'No' to cancel the current upload and disable screenshot auto uploading.</
<data name="globe__arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\globe--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FFmpegOnlySupports64BitOperatingSystems" xml:space="preserve">
<value>FFmpeg that comes with ShareX only supports 64-bit operating systems.</value>
</data>
<data name="TaskHelpers_TweetMessage_Unable_to_find_valid_Twitter_account_" xml:space="preserve">
<value>Unable to find a valid Twitter account.</value>
</data>
@ -439,6 +445,9 @@ Are you sure you want to continue?</value>
<data name="drive" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\drive.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FFmpegIsMissing" xml:space="preserve">
<value>FFmpeg is missing</value>
</data>
<data name="TaskSettingsForm_UpdateUploaderMenuNames_File_uploader___0_" xml:space="preserve">
<value>File uploader: {0}</value>
</data>
@ -448,11 +457,11 @@ Are you sure you want to continue?</value>
<data name="images-flickr" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\images-flickr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="UploadTask_DoAfterCaptureJobs_Choose_a_folder_to_save" xml:space="preserve">
<value>Choose a folder to save</value>
<data name="ApplicationSettingsForm_btnResetSettings_Click_WouldYouLikeToResetShareXSettings" xml:space="preserve">
<value>Would you like to reset ShareX settings?</value>
</data>
<data name="MainForm_tsmiDeleteSelectedFile_Click_File_delete_confirmation" xml:space="preserve">
<value>File delete confirmation</value>
<data name="AboutForm_AboutForm_Language_pl" xml:space="preserve">
<value>Polish</value>
</data>
<data name="application_blog" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-blog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -469,8 +478,8 @@ Are you sure you want to continue?</value>
<data name="application_monitor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-monitor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="camera" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\camera.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="FileExistForm_txtNewName_TextChanged_Use_new_name__" xml:space="preserve">
<value>Use new name: </value>
</data>
<data name="wrench_screwdriver" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wrench-screwdriver.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -478,6 +487,9 @@ Are you sure you want to continue?</value>
<data name="application_home" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-home.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="UploadManager_IsUploadConfirmed_Don_t_show_this_message_again_" xml:space="preserve">
<value>Don't show this message again.</value>
</data>
<data name="drive_globe" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\drive-globe.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -493,11 +505,11 @@ Are you sure you want to continue?</value>
<data name="AboutForm_AboutForm_Privacy_policy" xml:space="preserve">
<value>Privacy policy</value>
</data>
<data name="ApplicationSettingsForm_cbStartWithWindows_EnabledByPolicy_Text" xml:space="preserve">
<value>Startup has been enabled by your organization</value>
<data name="ro" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ro.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="clock_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\clock-select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="ApplicationSettingsForm_btnBrowsePersonalFolderPath_Click_Choose_ShareX_personal_folder_path" xml:space="preserve">
<value>Choose ShareX personal folder path</value>
</data>
<data name="AboutForm_AboutForm_Language_ro" xml:space="preserve">
<value>Romanian</value>
@ -511,8 +523,8 @@ Are you sure you want to continue?</value>
<data name="ActionsToolbarEditForm_Separator" xml:space="preserve">
<value>Separator</value>
</data>
<data name="WouldYouLikeToResetThemes" xml:space="preserve">
<value>Would you like to reset themes?</value>
<data name="AboutForm_AboutForm_Language_he-IL" xml:space="preserve">
<value>Hebrew</value>
</data>
<data name="ThisFeatureWillNotWorkWhenDisableUploadOptionIsEnabled" xml:space="preserve">
<value>This feature will not work when "DisableUpload" option is enabled!</value>
@ -570,8 +582,8 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="AboutForm_AboutForm_Project_page" xml:space="preserve">
<value>Project page</value>
</data>
<data name="UploadManager_IsUploadConfirmed_Don_t_show_this_message_again_" xml:space="preserve">
<value>Don't show this message again.</value>
<data name="pin" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="IntegrationHelpers_EditWithShareX" xml:space="preserve">
<value>Edit with ShareX</value>
@ -582,9 +594,15 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="AboutForm_AboutForm_Links" xml:space="preserve">
<value>Links</value>
</data>
<data name="ClipboardDoesNotContainAnImage" xml:space="preserve">
<value>Clipboard does not contain an image.</value>
</data>
<data name="disk_black" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\disk-black.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="pl" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pl.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="TaskManager_task_UploadCompleted_Error" xml:space="preserve">
<value>Error</value>
</data>
@ -606,6 +624,9 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="keyboard__plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\keyboard--plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="QuickTaskMenuEditorForm_Reset_all_quick_tasks_to_defaults_Confirmation" xml:space="preserve">
<value>Reset all quick tasks to defaults?</value>
</data>
<data name="TaskSettingsForm_UpdateUploaderMenuNames_After_capture___0_" xml:space="preserve">
<value>After capture: {0}</value>
</data>
@ -627,8 +648,8 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="ir" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ir.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cn" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="closedhand" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\closedhand.cur;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="Twitter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\twitter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -693,8 +714,8 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="ErrorSound" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ErrorSound.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="InspectWindow_WindowStyles" xml:space="preserve">
<value>Window styles</value>
<data name="UploadInfoManager_ShowErrors_Upload_errors" xml:space="preserve">
<value>Upload errors</value>
</data>
<data name="AutoCaptureForm_Execute_Stop" xml:space="preserve">
<value>Stop</value>
@ -714,6 +735,9 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="film__arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\film--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="question" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\question.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ActionsToolbar_Close" xml:space="preserve">
<value>Close</value>
</data>
@ -734,14 +758,20 @@ Would you like to restart ShareX?</value>
<data name="FFmpeg_FFmpeg_error" xml:space="preserve">
<value>FFmpeg error</value>
</data>
<data name="WouldYouLikeToResetThemes" xml:space="preserve">
<value>Would you like to reset themes?</value>
</data>
<data name="folder_stand" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder-stand.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="ApplicationSettingsForm_btnBrowsePersonalFolderPath_Click_Choose_ShareX_personal_folder_path" xml:space="preserve">
<value>Choose ShareX personal folder path</value>
<data name="application-search-result" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-search-result.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="TaskSettingsForm_UpdateUploaderMenuNames_URL_shortener___0_" xml:space="preserve">
<value>URL shortener: {0}</value>
</data>
<data name="pt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -764,8 +794,8 @@ Would you like to restart ShareX?</value>
<data name="pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pencil.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application-search-result" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-search-result.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="megaphone" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\megaphone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="UploadManager_ShowShortenURLDialog_Shorten" xml:space="preserve">
<value>Shorten</value>
@ -779,9 +809,15 @@ Would you like to restart ShareX?</value>
<data name="UploadTask_OnUploadCompleted_Done" xml:space="preserve">
<value>Done</value>
</data>
<data name="MainForm_tsmiDeleteSelectedFile_Click_File_delete_confirmation" xml:space="preserve">
<value>File delete confirmation</value>
</data>
<data name="traffic_cone" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\traffic-cone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="InspectWindow_WindowStyles" xml:space="preserve">
<value>Window styles</value>
</data>
<data name="MainForm_UpdateWorkflowsMenu_You_can_add_workflows_from_hotkey_settings___" xml:space="preserve">
<value>You can add workflows from hotkey settings...</value>
</data>
@ -800,8 +836,11 @@ Would you like to restart ShareX?</value>
<data name="AboutForm_AboutForm_Language_fr" xml:space="preserve">
<value>French</value>
</data>
<data name="camcorder_image" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\camcorder-image.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="UploadTask_DoAfterCaptureJobs_Choose_a_folder_to_save" xml:space="preserve">
<value>Choose a folder to save</value>
</data>
<data name="OpticalCharacterRecognitionFeatureIsOnlyAvailableWithWindowsVersion0OrNewer" xml:space="preserve">
<value>Optical character recognition feature is only available with Windows version {0} or newer.</value>
</data>
<data name="TaskSettingsForm_UpdateUploaderMenuNames_URL_sharing_service___0_" xml:space="preserve">
<value>URL sharing service: {0}</value>
@ -827,8 +866,8 @@ Would you like to restart ShareX?</value>
<data name="SwitchToListView" xml:space="preserve">
<value>Switch to list view</value>
</data>
<data name="GitHub" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\github.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="InspectWindow_ExtendedWindowStyles" xml:space="preserve">
<value>Extended window styles</value>
</data>
<data name="Discord" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\discord.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -839,6 +878,9 @@ Would you like to restart ShareX?</value>
<data name="edit_drop_cap" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\edit-drop-cap.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="OCRForm_AutoComplete" xml:space="preserve">
<value>The OCR output has been copied to your clipboard.</value>
</data>
<data name="AboutForm_AboutForm_Language_ru" xml:space="preserve">
<value>Russian</value>
</data>
@ -891,17 +933,17 @@ Please run ShareX as administrator to change personal folder path.</value>
<data name="nl" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\nl.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="megaphone" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\megaphone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AboutForm_AboutForm_Language_tr" xml:space="preserve">
<value>Turkish</value>
</data>
<data name="status" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="images_stack" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\images-stack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ApplicationSettingsForm_btnResetSettings_Click_WouldYouLikeToResetShareXSettings" xml:space="preserve">
<value>Would you like to reset ShareX settings?</value>
<data name="GitHub" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\github.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FailedToSaveSettings" xml:space="preserve">
<value>Failed to save settings</value>
@ -915,6 +957,9 @@ Please run ShareX as administrator to change personal folder path.</value>
<data name="color" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\color.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="camera" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\camera.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="InspectWindow_ClientRectangle" xml:space="preserve">
<value>Client rectangle</value>
</data>
@ -930,17 +975,20 @@ Please run ShareX as administrator to change personal folder path.</value>
<data name="tr" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tr.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FFmpegDoesNotExistAtTheFollowingPath" xml:space="preserve">
<value>FFmpeg does not exist at the following path:</value>
</data>
<data name="edit_scale_white" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\edit-scale-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MainForm_UpdateToggleHotkeyButton_Enable_hotkeys" xml:space="preserve">
<value>Enable hotkeys</value>
</data>
<data name="application-tile-horizontal" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-tile-horizontal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="HotkeyManager_ShowFailedHotkeys_Hotkey_registration_failed" xml:space="preserve">
<value>Hotkey registration failed</value>
</data>
<data name="HotkeySettingsForm_Reset_all_hotkeys_to_defaults_Confirmation" xml:space="preserve">
<value>Reset all hotkeys to defaults?</value>
<data name="ActionsToolbar_Edit" xml:space="preserve">
<value>Edit...</value>
</data>
<data name="application_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -954,6 +1002,9 @@ Please run ShareX as administrator to change personal folder path.</value>
<data name="upload_cloud" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\upload-cloud.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="status_busy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status-busy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="layer__arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\layer--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -975,9 +1026,6 @@ Please run ShareX as administrator to change personal folder path.</value>
<data name="fr" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\fr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="InspectWindow_ExtendedWindowStyles" xml:space="preserve">
<value>Extended window styles</value>
</data>
<data name="ImageData_Write_Error_Message" xml:space="preserve">
<value>Could not write image to path:</value>
</data>
@ -1016,8 +1064,8 @@ Middle click to close</value>
<data name="drive_upload" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\drive-upload.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="HotkeyManager_ShowFailedHotkeys_Hotkey_registration_failed" xml:space="preserve">
<value>Hotkey registration failed</value>
<data name="openhand" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\openhand.cur;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="Description" xml:space="preserve">
<value>Description</value>
@ -1034,8 +1082,8 @@ Middle click to close</value>
<data name="ClipboardContentViewer_ClipboardContentViewer_Load_Clipboard_is_empty_or_contains_unknown_data_" xml:space="preserve">
<value>Clipboard is empty or contains unknown data.</value>
</data>
<data name="OCRForm_AutoComplete" xml:space="preserve">
<value>The OCR output has been copied to your clipboard.</value>
<data name="application-tile-horizontal" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-tile-horizontal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ScreenshotDelay0S" xml:space="preserve">
<value>Screenshot delay: {0}s</value>
@ -1052,6 +1100,9 @@ Middle click to close</value>
<data name="UploadManager_UploadFolder_Folder_upload" xml:space="preserve">
<value>Folder upload</value>
</data>
<data name="ApplicationSettingsForm_cbStartWithWindows_EnabledByPolicy_Text" xml:space="preserve">
<value>Startup has been enabled by your organization</value>
</data>
<data name="UploadTask_Prepare_Preparing" xml:space="preserve">
<value>Preparing</value>
</data>
@ -1074,55 +1125,7 @@ Middle click to close</value>
<data name="TaskCompletedSound" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TaskCompletedSound.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="question" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\question.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="pl" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pl.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AboutForm_AboutForm_Language_pl" xml:space="preserve">
<value>Polish</value>
</data>
<data name="pin" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="OpticalCharacterRecognitionFeatureIsOnlyAvailableWithWindowsVersion0OrNewer" xml:space="preserve">
<value>Optical character recognition feature is only available with Windows version {0} or newer.</value>
</data>
<data name="ClipboardDoesNotContainAnImage" xml:space="preserve">
<value>Clipboard does not contain an image.</value>
</data>
<data name="PinToScreen" xml:space="preserve">
<value>Pin to screen</value>
</data>
<data name="status" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="status_away" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status-away.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="status_busy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status-busy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="closedhand" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\closedhand.cur;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="openhand" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\openhand.cur;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="FFmpegOnlySupports64BitOperatingSystems" xml:space="preserve">
<value>FFmpeg that comes with ShareX only supports 64-bit operating systems.</value>
</data>
<data name="FFmpegIsMissing" xml:space="preserve">
<value>FFmpeg is missing</value>
</data>
<data name="FFmpegDoesNotExistAtTheFollowingPath" xml:space="preserve">
<value>FFmpeg does not exist at the following path:</value>
</data>
<data name="il" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\il.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AboutForm_AboutForm_Language_he-IL" xml:space="preserve">
<value>Hebrew</value>
<data name="picture-sunset" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\picture-sunset.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

View file

@ -2282,6 +2282,9 @@
<ItemGroup>
<None Include="Resources\il.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\picture-sunset.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>

View file

@ -1059,6 +1059,17 @@ public static Bitmap AnnotateImage(Bitmap bmp, string filePath, TaskSettings tas
return null;
}
public static void OpenImageBeautifier()
{
Bitmap sourceImage = ImageHelpers.LoadImageWithFileDialog();
if (sourceImage != null)
{
ImageBeautifierForm imageBeautifierForm = new ImageBeautifierForm(sourceImage);
imageBeautifierForm.Show();
}
}
public static void OpenImageEffects(TaskSettings taskSettings = null)
{
string filePath = ImageHelpers.OpenImageFileDialog();