mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-28 23:42:13 +12:00
Added Video Thumbnailer
This commit is contained in:
parent
4b41b75404
commit
3d6b7b0b6b
16 changed files with 897 additions and 512 deletions
83
ShareX.MediaLib/Forms/VideoThumbnailerForm.Designer.cs
generated
Normal file
83
ShareX.MediaLib/Forms/VideoThumbnailerForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,83 @@
|
|||
namespace ShareX.MediaLib
|
||||
{
|
||||
partial class VideoThumbnailerForm
|
||||
{
|
||||
/// <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.txtMediaPath = new System.Windows.Forms.TextBox();
|
||||
this.btnStart = new System.Windows.Forms.Button();
|
||||
this.pgOptions = new System.Windows.Forms.PropertyGrid();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// txtMediaPath
|
||||
//
|
||||
this.txtMediaPath.Location = new System.Drawing.Point(8, 8);
|
||||
this.txtMediaPath.Name = "txtMediaPath";
|
||||
this.txtMediaPath.Size = new System.Drawing.Size(624, 20);
|
||||
this.txtMediaPath.TabIndex = 0;
|
||||
//
|
||||
// btnStart
|
||||
//
|
||||
this.btnStart.Location = new System.Drawing.Point(640, 8);
|
||||
this.btnStart.Name = "btnStart";
|
||||
this.btnStart.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnStart.TabIndex = 1;
|
||||
this.btnStart.Text = "Start";
|
||||
this.btnStart.UseVisualStyleBackColor = true;
|
||||
this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
|
||||
//
|
||||
// pgOptions
|
||||
//
|
||||
this.pgOptions.CategoryForeColor = System.Drawing.SystemColors.InactiveCaptionText;
|
||||
this.pgOptions.Location = new System.Drawing.Point(8, 40);
|
||||
this.pgOptions.Name = "pgOptions";
|
||||
this.pgOptions.Size = new System.Drawing.Size(704, 416);
|
||||
this.pgOptions.TabIndex = 2;
|
||||
this.pgOptions.ToolbarVisible = false;
|
||||
//
|
||||
// VideoThumbnailerForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(725, 467);
|
||||
this.Controls.Add(this.pgOptions);
|
||||
this.Controls.Add(this.btnStart);
|
||||
this.Controls.Add(this.txtMediaPath);
|
||||
this.Name = "VideoThumbnailerForm";
|
||||
this.Text = "ShareX - Video thumbnailer";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox txtMediaPath;
|
||||
private System.Windows.Forms.Button btnStart;
|
||||
private System.Windows.Forms.PropertyGrid pgOptions;
|
||||
}
|
||||
}
|
68
ShareX.MediaLib/Forms/VideoThumbnailerForm.cs
Normal file
68
ShareX.MediaLib/Forms/VideoThumbnailerForm.cs
Normal file
|
@ -0,0 +1,68 @@
|
|||
#region License Information (GPL v3)
|
||||
|
||||
/*
|
||||
ShareX - A program that allows you to take screenshots and share any file type
|
||||
Copyright © 2007-2015 ShareX Developers
|
||||
|
||||
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;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ShareX.MediaLib
|
||||
{
|
||||
public partial class VideoThumbnailerForm : Form
|
||||
{
|
||||
public string FFmpegPath { get; private set; }
|
||||
public VideoThumbnailOptions Options { get; set; }
|
||||
|
||||
public VideoThumbnailerForm(string ffmpegPath, VideoThumbnailOptions options)
|
||||
{
|
||||
FFmpegPath = ffmpegPath;
|
||||
Options = options;
|
||||
InitializeComponent();
|
||||
Icon = ShareXResources.Icon;
|
||||
pgOptions.SelectedObject = Options;
|
||||
}
|
||||
|
||||
private void btnStart_Click(object sender, EventArgs e)
|
||||
{
|
||||
string mediaPath = txtMediaPath.Text;
|
||||
|
||||
if (File.Exists(mediaPath))
|
||||
{
|
||||
VideoThumbnailer thumbnailer = new VideoThumbnailer(mediaPath, FFmpegPath, Options);
|
||||
btnStart.Enabled = false;
|
||||
BackgroundWorker bw = new BackgroundWorker();
|
||||
bw.DoWork += (sender2, e2) => thumbnailer.TakeScreenshots();
|
||||
bw.RunWorkerCompleted += (sender3, e3) => btnStart.Enabled = true;
|
||||
bw.RunWorkerAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
ShareX.MediaLib/Forms/VideoThumbnailerForm.resx
Normal file
120
ShareX.MediaLib/Forms/VideoThumbnailerForm.resx
Normal 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>
|
|
@ -35,6 +35,7 @@
|
|||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
|
@ -44,7 +45,13 @@
|
|||
<ItemGroup>
|
||||
<Compile Include="Enums.cs" />
|
||||
<Compile Include="FFmpegCLIManager.cs" />
|
||||
<Compile Include="ScreenshotInfo.cs" />
|
||||
<Compile Include="Forms\VideoThumbnailerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\VideoThumbnailerForm.Designer.cs">
|
||||
<DependentUpon>VideoThumbnailerForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="VideoThumbnailInfo.cs" />
|
||||
<Compile Include="VideoInfo.cs" />
|
||||
<Compile Include="VideoThumbnailer.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
@ -56,6 +63,11 @@
|
|||
<Name>ShareX.HelpersLib</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Forms\VideoThumbnailerForm.resx">
|
||||
<DependentUpon>VideoThumbnailerForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
|
|
@ -31,7 +31,7 @@ You should have received a copy of the GNU General Public License
|
|||
|
||||
namespace ShareX.MediaLib
|
||||
{
|
||||
internal class ScreenshotInfo
|
||||
public class VideoThumbnailInfo
|
||||
{
|
||||
public string Args { get; set; }
|
||||
public string FullImageLink { get; set; }
|
||||
|
@ -39,7 +39,7 @@ internal class ScreenshotInfo
|
|||
public string LocalPath { get; set; }
|
||||
public TimeSpan Timestamp { get; set; }
|
||||
|
||||
public ScreenshotInfo(string fp)
|
||||
public VideoThumbnailInfo(string fp)
|
||||
{
|
||||
LocalPath = fp;
|
||||
}
|
|
@ -53,9 +53,6 @@ public class VideoThumbnailOptions
|
|||
[Category("Screenshots"), DefaultValue(true), Description("Keep or delete screenshots after processing files.")]
|
||||
public bool KeepScreenshots { get; set; }
|
||||
|
||||
[Category("Screenshots"), DefaultValue(true), Description("Create screenshots using thumbnailer.")]
|
||||
public bool CreateScreenshots { get; set; }
|
||||
|
||||
[Category("Screenshots"), DefaultValue(ThumbnailLocationType.DefaultFolder), Description("Create screenshots in the same folders as the media file, default torrent folder or in a custom folder.")]
|
||||
public ThumbnailLocationType ScreenshotsLocation { get; set; }
|
||||
|
||||
|
@ -82,5 +79,10 @@ public class VideoThumbnailOptions
|
|||
|
||||
[Category("Screenshots / Combined"), DefaultValue(true), Description("Draw rectangle shadow behind thumbnails.")]
|
||||
public bool DrawShadow { get; set; }
|
||||
|
||||
public VideoThumbnailOptions()
|
||||
{
|
||||
this.ApplyDefaultPropertyValues();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -42,8 +42,6 @@ public class VideoThumbnailer
|
|||
public VideoThumbnailOptions Options { get; private set; }
|
||||
public VideoInfo VideoInfo { get; private set; }
|
||||
|
||||
private List<ScreenshotInfo> tempScreenshots = new List<ScreenshotInfo>();
|
||||
private List<ScreenshotInfo> screenshots = new List<ScreenshotInfo>();
|
||||
private int timeSlice;
|
||||
private List<int> mediaSeekTimes = new List<int>();
|
||||
|
||||
|
@ -66,9 +64,14 @@ public VideoThumbnailer(string mediaPath, string ffmpegPath, VideoThumbnailOptio
|
|||
}
|
||||
}
|
||||
|
||||
public virtual void TakeScreenshots()
|
||||
public virtual List<VideoThumbnailInfo> TakeScreenshots()
|
||||
{
|
||||
if (!File.Exists(FFmpegPath)) return;
|
||||
if (!File.Exists(FFmpegPath))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
List<VideoThumbnailInfo> tempScreenshots = new List<VideoThumbnailInfo>();
|
||||
|
||||
for (int i = 0; i < Options.ScreenshotCount; i++)
|
||||
{
|
||||
|
@ -77,7 +80,7 @@ public virtual void TakeScreenshots()
|
|||
|
||||
int timeSliceElapsed = Options.RandomFrame ? GetRandomTimeSlice(i) : timeSlice * (i + 1);
|
||||
string filename = string.Format("{0}-{1}.{2}", mediaFileName, timeSliceElapsed.ToString("00000"), Options.FFmpegThumbnailExtension);
|
||||
string tempScreenshotPath = Path.Combine(Options.OutputDirectory, filename);
|
||||
string tempScreenshotPath = Path.Combine(GetOutputDirectory(), filename);
|
||||
|
||||
ProcessStartInfo psi = new ProcessStartInfo(FFmpegPath);
|
||||
psi.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
|
@ -92,7 +95,7 @@ public virtual void TakeScreenshots()
|
|||
|
||||
if (File.Exists(tempScreenshotPath))
|
||||
{
|
||||
ScreenshotInfo screenshotInfo = new ScreenshotInfo(tempScreenshotPath)
|
||||
VideoThumbnailInfo screenshotInfo = new VideoThumbnailInfo(tempScreenshotPath)
|
||||
{
|
||||
Args = psi.Arguments,
|
||||
Timestamp = TimeSpan.FromSeconds(timeSliceElapsed)
|
||||
|
@ -102,11 +105,13 @@ public virtual void TakeScreenshots()
|
|||
}
|
||||
}
|
||||
|
||||
Finish();
|
||||
return Finish(tempScreenshots);
|
||||
}
|
||||
|
||||
protected virtual void Finish()
|
||||
protected virtual List<VideoThumbnailInfo> Finish(List<VideoThumbnailInfo> tempScreenshots)
|
||||
{
|
||||
List<VideoThumbnailInfo> screenshots = new List<VideoThumbnailInfo>();
|
||||
|
||||
if (tempScreenshots != null && tempScreenshots.Count > 0)
|
||||
{
|
||||
if (Options.CombineScreenshots)
|
||||
|
@ -114,7 +119,7 @@ protected virtual void Finish()
|
|||
string temp_fp = "";
|
||||
using (Image img = CombineScreenshots(tempScreenshots))
|
||||
{
|
||||
temp_fp = Path.Combine(Options.OutputDirectory, Path.GetFileNameWithoutExtension(MediaPath) + "_s." + Options.FFmpegThumbnailExtension);
|
||||
temp_fp = Path.Combine(GetOutputDirectory(), Path.GetFileNameWithoutExtension(MediaPath) + "_s." + Options.FFmpegThumbnailExtension);
|
||||
|
||||
switch (Options.FFmpegThumbnailExtension)
|
||||
{
|
||||
|
@ -126,7 +131,7 @@ protected virtual void Finish()
|
|||
break;
|
||||
}
|
||||
|
||||
screenshots.Add(new ScreenshotInfo(temp_fp) { Args = tempScreenshots[0].Args });
|
||||
screenshots.Add(new VideoThumbnailInfo(temp_fp) { Args = tempScreenshots[0].Args });
|
||||
}
|
||||
|
||||
tempScreenshots.ForEach(x => File.Delete(x.LocalPath));
|
||||
|
@ -136,11 +141,27 @@ protected virtual void Finish()
|
|||
screenshots.AddRange(tempScreenshots);
|
||||
}
|
||||
}
|
||||
|
||||
return screenshots;
|
||||
}
|
||||
|
||||
private string GetOutputDirectory()
|
||||
{
|
||||
switch (Options.ScreenshotsLocation)
|
||||
{
|
||||
case ThumbnailLocationType.ParentFolder:
|
||||
return Path.GetDirectoryName(MediaPath);
|
||||
case ThumbnailLocationType.CustomFolder:
|
||||
return Options.OutputDirectory;
|
||||
default:
|
||||
case ThumbnailLocationType.DefaultFolder: // TODO
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
protected int GetTimeSlice(int count)
|
||||
{
|
||||
return (int)(VideoInfo.Duration.TotalSeconds / (count * 1000));
|
||||
return (int)(VideoInfo.Duration.TotalSeconds / count);
|
||||
}
|
||||
|
||||
protected int GetRandomTimeSlice(int start)
|
||||
|
@ -149,7 +170,7 @@ protected int GetRandomTimeSlice(int start)
|
|||
return (int)(random.NextDouble() * (mediaSeekTimes[start + 1] - mediaSeekTimes[start]) + mediaSeekTimes[start]);
|
||||
}
|
||||
|
||||
private Image CombineScreenshots(List<ScreenshotInfo> screenshots)
|
||||
private Image CombineScreenshots(List<VideoThumbnailInfo> screenshots)
|
||||
{
|
||||
List<Image> images = new List<Image>();
|
||||
Image finalImage = null;
|
||||
|
@ -169,7 +190,7 @@ private Image CombineScreenshots(List<ScreenshotInfo> screenshots)
|
|||
}
|
||||
}
|
||||
|
||||
foreach (ScreenshotInfo screenshot in screenshots)
|
||||
foreach (VideoThumbnailInfo screenshot in screenshots)
|
||||
{
|
||||
Image img = Image.FromFile(screenshot.LocalPath);
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ You should have received a copy of the GNU General Public License
|
|||
#endregion License Information (GPL v3)
|
||||
|
||||
using ShareX.HelpersLib;
|
||||
using ShareX.MediaLib;
|
||||
using ShareX.UploadersLib;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
|
@ -44,6 +45,7 @@ public class ApplicationConfig : SettingsBase<ApplicationConfig>
|
|||
public int NameParserAutoIncrementNumber = 0;
|
||||
public RecentItem[] RecentLinks = null;
|
||||
public bool DisableHotkeys = false;
|
||||
public VideoThumbnailOptions VideoThumbnailOptions = new VideoThumbnailOptions();
|
||||
|
||||
public ApplicationConfig()
|
||||
{
|
||||
|
|
10
ShareX/Forms/MainForm.Designer.cs
generated
10
ShareX/Forms/MainForm.Designer.cs
generated
|
@ -83,6 +83,7 @@ private void InitializeComponent()
|
|||
this.tsmiFTPClient = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTweetMessage = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiMonitorTest = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiVideoThumbnailer = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tssMain1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.tsddbAfterCaptureTasks = new System.Windows.Forms.ToolStripDropDownButton();
|
||||
this.tsddbAfterUploadTasks = new System.Windows.Forms.ToolStripDropDownButton();
|
||||
|
@ -576,6 +577,7 @@ private void InitializeComponent()
|
|||
this.tsmiRuler,
|
||||
this.tsmiAutomate,
|
||||
this.tsmiIndexFolder,
|
||||
this.tsmiVideoThumbnailer,
|
||||
this.tsmiFTPClient,
|
||||
this.tsmiTweetMessage,
|
||||
this.tsmiMonitorTest});
|
||||
|
@ -674,6 +676,13 @@ private void InitializeComponent()
|
|||
resources.ApplyResources(this.tsmiMonitorTest, "tsmiMonitorTest");
|
||||
this.tsmiMonitorTest.Click += new System.EventHandler(this.tsmiMonitorTest_Click);
|
||||
//
|
||||
// tsmiVideoThumbnailer
|
||||
//
|
||||
this.tsmiVideoThumbnailer.Image = global::ShareX.Properties.Resources.images_stack;
|
||||
this.tsmiVideoThumbnailer.Name = "tsmiVideoThumbnailer";
|
||||
resources.ApplyResources(this.tsmiVideoThumbnailer, "tsmiVideoThumbnailer");
|
||||
this.tsmiVideoThumbnailer.Click += new System.EventHandler(this.tsmiVideoThumbnailer_Click);
|
||||
//
|
||||
// tssMain1
|
||||
//
|
||||
this.tssMain1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
|
@ -1954,5 +1963,6 @@ private void InitializeComponent()
|
|||
private System.Windows.Forms.Panel pGreenlight;
|
||||
private HelpersLib.GreenlightButton btnGreenlightOpen;
|
||||
private HelpersLib.GreenlightButton btnGreenlightHide;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiVideoThumbnailer;
|
||||
}
|
||||
}
|
|
@ -960,6 +960,11 @@ private void tsmiIndexFolder_Click(object sender, EventArgs e)
|
|||
TaskHelpers.OpenIndexFolder();
|
||||
}
|
||||
|
||||
private void tsmiVideoThumbnailer_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenVideoThumbnailer();
|
||||
}
|
||||
|
||||
private void tsmiImageEditor_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenImageEditor();
|
||||
|
|
File diff suppressed because it is too large
Load diff
10
ShareX/Properties/Resources.Designer.cs
generated
10
ShareX/Properties/Resources.Designer.cs
generated
|
@ -929,6 +929,16 @@ public static System.Drawing.Bitmap image_saturation {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap images_stack {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("images-stack", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
|
|
@ -134,9 +134,6 @@
|
|||
<data name="UploadTask_CreateURLShortenerTask_Shorten_URL___0__" xml:space="preserve">
|
||||
<value>Shorten URL ({0})</value>
|
||||
</data>
|
||||
<data name="layer_transparent" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Polygon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Polygon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -165,29 +162,32 @@ Press 'No' to cancel the current upload and disable screenshot auto uploading.</
|
|||
<data name="google_plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\google_plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="toolbox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\toolbox.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="au" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\au.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ScreenRecordForm_StartRecording_FFmpeg_error" xml:space="preserve">
|
||||
<value>FFmpeg error</value>
|
||||
</data>
|
||||
<data name="checkbox_check" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\checkbox_check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ScreenRecordForm_DownloaderForm_InstallRequested_FFmpeg_successfully_downloaded_" xml:space="preserve">
|
||||
<value>FFmpeg successfully downloaded.</value>
|
||||
</data>
|
||||
<data name="layers_ungroup" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layers-ungroup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="document_globe" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\document-globe.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="control_record_yellow" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\control-record-yellow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<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="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 name="TaskHelpers_OpenFTPClient_Unable_to_find_valid_FTP_account_" xml:space="preserve">
|
||||
<value>Unable to find valid FTP account.</value>
|
||||
</data>
|
||||
<data name="CaptureSound" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CaptureSound.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
|
@ -237,6 +237,9 @@ Press 'No' to cancel the current upload and disable screenshot auto uploading.</
|
|||
<data name="Fullscreen" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Fullscreen.png;System.Drawing.Bitmap, System.Drawing, Version=2.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="UploadTask_ThreadDoWork_URL_is_empty_" xml:space="preserve">
|
||||
<value>URL is empty.</value>
|
||||
</data>
|
||||
|
@ -256,9 +259,6 @@ Please select a different hotkey or quit the conflicting application and reopen
|
|||
<data name="AutoCaptureForm_Execute_Stop" xml:space="preserve">
|
||||
<value>Stop</value>
|
||||
</data>
|
||||
<data name="RecentManager_UpdateRecentMenu_Left_click_to_copy_URL_to_clipboard__Right_click_to_open_URL_" xml:space="preserve">
|
||||
<value>Left click to copy URL to clipboard. Right click to open URL.</value>
|
||||
</data>
|
||||
<data name="robot" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\robot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -283,6 +283,9 @@ Please select a different hotkey or quit the conflicting application and reopen
|
|||
<data name="edit_scale" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\edit-scale.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="keyboard__minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\keyboard--minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="steam" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\steam.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -292,6 +295,9 @@ Please select a different hotkey or quit the conflicting application and reopen
|
|||
<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>
|
||||
</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>
|
||||
<data name="TaskSettingsForm_UpdateWindowTitle_Task_settings" xml:space="preserve">
|
||||
<value>Task settings</value>
|
||||
</data>
|
||||
|
@ -328,6 +334,9 @@ Would you like to automatically download it?</value>
|
|||
<value>Waiting...</value>
|
||||
<comment>Text must be equal or lower than 54 characters because of tray icon text length limit.</comment>
|
||||
</data>
|
||||
<data name="BeforeUploadForm_BeforeUploadForm__0__is_about_to_be_uploaded_to__1___You_may_choose_a_different_destination_" xml:space="preserve">
|
||||
<value>{0} is about to be uploaded to {1}. You may choose a different destination.</value>
|
||||
</data>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_Image_uploader___0_" xml:space="preserve">
|
||||
<value>Image uploader: {0}</value>
|
||||
</data>
|
||||
|
@ -337,15 +346,12 @@ Would you like to automatically download it?</value>
|
|||
<data name="layer_pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=4.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="TaskHelpers_OpenQuickScreenColorPicker_Copied_to_clipboard___0_" xml:space="preserve">
|
||||
<value>Copied to clipboard: {0}</value>
|
||||
</data>
|
||||
<data name="MainForm_UpdateMenu_Hide_menu" xml:space="preserve">
|
||||
<value>Hide menu</value>
|
||||
</data>
|
||||
<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="navigation_000_button" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\navigation-000-button.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -367,9 +373,6 @@ Would you like to automatically download it?</value>
|
|||
<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="TaskHelpers_OpenFTPClient_Unable_to_find_valid_FTP_account_" xml:space="preserve">
|
||||
<value>Unable to find valid FTP account.</value>
|
||||
</data>
|
||||
<data name="UploadTask_DoAfterCaptureJobs_Choose_a_folder_to_save" xml:space="preserve">
|
||||
<value>Choose a folder to save</value>
|
||||
</data>
|
||||
|
@ -394,8 +397,11 @@ Would you like to automatically download it?</value>
|
|||
<data name="globe_share" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\globe-share.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="folder_tree" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\folder-tree.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="kr" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\kr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<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="TaskManager_task_UploadCompleted_Error" xml:space="preserve">
|
||||
<value>Error</value>
|
||||
|
@ -450,9 +456,6 @@ Please run ShareX as administrator to change personal folder path.</value>
|
|||
<data name="gear" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\gear.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="image_saturation" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\image-saturation.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\folder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -472,8 +475,8 @@ Please run ShareX as administrator to change personal folder path.</value>
|
|||
<data name="TaskHelpers_OpenFTPClient_FTP_client_only_supports_FTP_or_FTPS_" xml:space="preserve">
|
||||
<value>FTP client only supports FTP or FTPS.</value>
|
||||
</data>
|
||||
<data name="layers_arrange" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layers-arrange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="arrow_090" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="WatchFolderForm_btnPathBrowse_Click_Choose_folder_path" xml:space="preserve">
|
||||
<value>Choose folder path</value>
|
||||
|
@ -488,14 +491,11 @@ Would you like to restart ShareX?</value>
|
|||
<data name="layer_shape" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-shape.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="eraser" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\eraser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="image_pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\image--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_OpenQuickScreenColorPicker_Copied_to_clipboard___0_" xml:space="preserve">
|
||||
<value>Copied to clipboard: {0}</value>
|
||||
<data name="image_saturation" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\image-saturation.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Program_Run_Error" xml:space="preserve">
|
||||
<value>Error</value>
|
||||
|
@ -503,12 +503,6 @@ Would you like to restart ShareX?</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="kr" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\kr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="categories" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\categories.png;System.Drawing.Bitmap, System.Drawing, Version=4.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>
|
||||
|
@ -542,6 +536,9 @@ Would you like to restart ShareX?</value>
|
|||
<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>
|
||||
<data name="folder_tree" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\folder-tree.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="AboutForm_AboutForm_Translators" xml:space="preserve">
|
||||
<value>Translators</value>
|
||||
</data>
|
||||
|
@ -566,12 +563,15 @@ Would you like to restart ShareX?</value>
|
|||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_After_capture___0_" xml:space="preserve">
|
||||
<value>After capture: {0}</value>
|
||||
</data>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_URL_shortener___0_" xml:space="preserve">
|
||||
<value>URL shortener: {0}</value>
|
||||
<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="clipboard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\clipboard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="barcode_2d" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\barcode-2d.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Program_Run_Unable_to_create_folder_" xml:space="preserve">
|
||||
<value>Unable to create folder:</value>
|
||||
</data>
|
||||
|
@ -584,8 +584,11 @@ Would you like to restart ShareX?</value>
|
|||
<data name="film" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\film.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="arrow_090" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="ScreenColorPicker_ScreenColorPicker_Close" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
</data>
|
||||
<data name="RecentManager_UpdateRecentMenu_Left_click_to_copy_URL_to_clipboard__Right_click_to_open_URL_" xml:space="preserve">
|
||||
<value>Left click to copy URL to clipboard. Right click to open URL.</value>
|
||||
</data>
|
||||
<data name="MainForm_AfterShownJobs_You_can_middle_click_the_ShareX_tray_icon_to_start_rectangle_capture_" xml:space="preserve">
|
||||
<value>You can middle click the ShareX tray icon to start rectangle capture.</value>
|
||||
|
@ -605,6 +608,9 @@ Would you like to restart ShareX?</value>
|
|||
<data name="UploadManager_UploadFile_File_upload" xml:space="preserve">
|
||||
<value>File upload</value>
|
||||
</data>
|
||||
<data name="ScreenColorPicker_UpdateControls_Start_screen_color_picker" xml:space="preserve">
|
||||
<value>Start screen color picker</value>
|
||||
</data>
|
||||
<data name="layout_select_sidebar" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layout-select-sidebar.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -615,6 +621,9 @@ Would you like to restart ShareX?</value>
|
|||
<value>Download failed:
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_After_upload___0_" xml:space="preserve">
|
||||
<value>After upload: {0}</value>
|
||||
</data>
|
||||
<data name="layer_shape_ellipse" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-shape-ellipse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -633,8 +642,8 @@ Would you like to restart ShareX?</value>
|
|||
<data name="layer_shape_polygon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-shape-polygon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="toolbox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\toolbox.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="checkbox_check" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\checkbox_check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UploadTask_OnUploadCompleted_Stopped" xml:space="preserve">
|
||||
<value>Stopped</value>
|
||||
|
@ -651,15 +660,12 @@ Would you like to restart ShareX?</value>
|
|||
<data name="AboutForm_AboutForm_Issues" xml:space="preserve">
|
||||
<value>Issues</value>
|
||||
</data>
|
||||
<data name="ScreenColorPicker_ScreenColorPicker_Close" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
<data name="layer_transparent" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</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>
|
||||
</data>
|
||||
<data name="application_browser" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\application-browser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<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>
|
||||
|
@ -669,8 +675,8 @@ Would you like to restart ShareX?</value>
|
|||
<data name="MainForm_tsmiTestTextUpload_Click_Text_upload_test" xml:space="preserve">
|
||||
<value>Text upload test</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 name="application_browser" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\application-browser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="notebook" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\notebook.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -687,6 +693,9 @@ Would you like to restart ShareX?</value>
|
|||
<data name="image" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<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="UploadTask_OnUploadCompleted_Done" xml:space="preserve">
|
||||
<value>Done</value>
|
||||
</data>
|
||||
|
@ -696,23 +705,23 @@ Would you like to restart ShareX?</value>
|
|||
<data name="RoundedRectangle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\RoundedRectangle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_TweetMessage_Unable_to_find_valid_Twitter_account_" xml:space="preserve">
|
||||
<value>Unable to find valid Twitter account.</value>
|
||||
</data>
|
||||
<data name="BeforeUploadForm_BeforeUploadForm__0__is_about_to_be_uploaded_to__1___You_may_choose_a_different_destination_" xml:space="preserve">
|
||||
<value>{0} is about to be uploaded to {1}. You may choose a different destination.</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="AboutForm_AboutForm_Website" xml:space="preserve">
|
||||
<value>Website</value>
|
||||
</data>
|
||||
<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 name="categories" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\categories.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_After_upload___0_" xml:space="preserve">
|
||||
<value>After upload: {0}</value>
|
||||
<data name="layers_arrange" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layers-arrange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="barcode_2d" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\barcode-2d.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="eraser" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\eraser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<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="ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_" xml:space="preserve">
|
||||
<value>Click to start recording.</value>
|
||||
|
@ -721,16 +730,10 @@ Would you like to restart ShareX?</value>
|
|||
<data name="ScreenRecordForm_DownloaderForm_InstallRequested_Download_of_FFmpeg_failed_" xml:space="preserve">
|
||||
<value>Download of FFmpeg failed.</value>
|
||||
</data>
|
||||
<data name="ScreenColorPicker_UpdateControls_Start_screen_color_picker" xml:space="preserve">
|
||||
<value>Start screen color picker</value>
|
||||
<data name="TaskHelpers_TweetMessage_Unable_to_find_valid_Twitter_account_" xml:space="preserve">
|
||||
<value>Unable to find valid Twitter account.</value>
|
||||
</data>
|
||||
<data name="document_globe" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\document-globe.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="keyboard__minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\keyboard--minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<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 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>
|
||||
</root>
|
BIN
ShareX/Resources/images-stack.png
Normal file
BIN
ShareX/Resources/images-stack.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 585 B |
|
@ -766,6 +766,10 @@
|
|||
<Project>{750c6f46-2c5a-4488-81d3-3b35ca50f3ee}</Project>
|
||||
<Name>ShareX.IndexerLib</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ShareX.MediaLib\ShareX.MediaLib.csproj">
|
||||
<Project>{1a190e53-1419-4cc2-b0e5-3bc7ea861c8b}</Project>
|
||||
<Name>ShareX.MediaLib</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ShareX.ScreenCaptureLib\ShareX.ScreenCaptureLib.csproj">
|
||||
<Project>{DBDB0DAA-B3AE-4CC4-A8C2-20550B7F32E3}</Project>
|
||||
<Name>ShareX.ScreenCaptureLib</Name>
|
||||
|
@ -933,6 +937,7 @@
|
|||
<None Include="Resources\document-globe.png" />
|
||||
<None Include="Resources\keyboard--minus.png" />
|
||||
<None Include="Resources\keyboard--plus.png" />
|
||||
<None Include="Resources\images-stack.png" />
|
||||
<Content Include="ShareX_Icon.ico" />
|
||||
<None Include="Resources\globe--pencil.png" />
|
||||
<None Include="Resources\camcorder--pencil.png" />
|
||||
|
|
|
@ -25,6 +25,7 @@ You should have received a copy of the GNU General Public License
|
|||
|
||||
using ShareX.HelpersLib;
|
||||
using ShareX.ImageEffectsLib;
|
||||
using ShareX.MediaLib;
|
||||
using ShareX.Properties;
|
||||
using ShareX.ScreenCaptureLib;
|
||||
using ShareX.UploadersLib;
|
||||
|
@ -621,6 +622,13 @@ public static void OpenIndexFolder()
|
|||
UploadManager.IndexFolder();
|
||||
}
|
||||
|
||||
public static void OpenVideoThumbnailer(TaskSettings taskSettings = null)
|
||||
{
|
||||
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
|
||||
|
||||
new VideoThumbnailerForm(taskSettings.CaptureSettings.FFmpegOptions.CLIPath, Program.Settings.VideoThumbnailOptions).Show();
|
||||
}
|
||||
|
||||
public static void OpenImageEditor(string filePath = null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(filePath))
|
||||
|
|
Loading…
Reference in a new issue