mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Added batch image thumbnailer tool
This commit is contained in:
parent
501fedd8f5
commit
113df131a4
9 changed files with 591 additions and 47 deletions
|
@ -252,10 +252,10 @@ public static void SaveJPG(this Image img, Stream stream, int quality)
|
||||||
|
|
||||||
public static void SaveJPG(this Image img, string filepath, int quality)
|
public static void SaveJPG(this Image img, string filepath, int quality)
|
||||||
{
|
{
|
||||||
quality = quality.Between(0, 100);
|
using (FileStream fs = new FileStream(filepath, FileMode.Create, FileAccess.Write, FileShare.Read))
|
||||||
EncoderParameters encoderParameters = new EncoderParameters(1);
|
{
|
||||||
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, quality);
|
SaveJPG(img, fs, quality);
|
||||||
img.Save(filepath, ImageFormat.Jpeg.GetCodecInfo(), encoderParameters);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SaveGIF(this Image img, Stream stream, GIFQuality quality)
|
public static void SaveGIF(this Image img, Stream stream, GIFQuality quality)
|
||||||
|
|
220
ShareX.MediaLib/Forms/ImageThumbnailerForm.Designer.cs
generated
Normal file
220
ShareX.MediaLib/Forms/ImageThumbnailerForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,220 @@
|
||||||
|
namespace ShareX.MediaLib
|
||||||
|
{
|
||||||
|
partial class ImageThumbnailerForm
|
||||||
|
{
|
||||||
|
/// <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.lvImages = new ShareX.HelpersLib.MyListView();
|
||||||
|
this.btnAdd = new System.Windows.Forms.Button();
|
||||||
|
this.btnRemove = new System.Windows.Forms.Button();
|
||||||
|
this.lblWidth = new System.Windows.Forms.Label();
|
||||||
|
this.nudWidth = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.lblHeight = new System.Windows.Forms.Label();
|
||||||
|
this.nudHeight = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.cbAllowEnlarge = new System.Windows.Forms.CheckBox();
|
||||||
|
this.cbCenterImage = new System.Windows.Forms.CheckBox();
|
||||||
|
this.lblOutputFilename = new System.Windows.Forms.Label();
|
||||||
|
this.txtOutputFilename = new System.Windows.Forms.TextBox();
|
||||||
|
this.btnGenerate = new System.Windows.Forms.Button();
|
||||||
|
this.chImages = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.nudWidth)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.nudHeight)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// lvImages
|
||||||
|
//
|
||||||
|
this.lvImages.AllowDrop = true;
|
||||||
|
this.lvImages.AllowItemDrag = true;
|
||||||
|
this.lvImages.AutoFillColumn = true;
|
||||||
|
this.lvImages.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||||
|
this.chImages});
|
||||||
|
this.lvImages.FullRowSelect = true;
|
||||||
|
this.lvImages.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
||||||
|
this.lvImages.Location = new System.Drawing.Point(8, 40);
|
||||||
|
this.lvImages.Name = "lvImages";
|
||||||
|
this.lvImages.Size = new System.Drawing.Size(560, 368);
|
||||||
|
this.lvImages.TabIndex = 0;
|
||||||
|
this.lvImages.UseCompatibleStateImageBehavior = false;
|
||||||
|
this.lvImages.View = System.Windows.Forms.View.Details;
|
||||||
|
this.lvImages.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvImages_DragDrop);
|
||||||
|
this.lvImages.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvImages_DragEnter);
|
||||||
|
//
|
||||||
|
// btnAdd
|
||||||
|
//
|
||||||
|
this.btnAdd.Location = new System.Drawing.Point(8, 8);
|
||||||
|
this.btnAdd.Name = "btnAdd";
|
||||||
|
this.btnAdd.Size = new System.Drawing.Size(168, 24);
|
||||||
|
this.btnAdd.TabIndex = 1;
|
||||||
|
this.btnAdd.Text = "Add...";
|
||||||
|
this.btnAdd.UseVisualStyleBackColor = true;
|
||||||
|
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
|
||||||
|
//
|
||||||
|
// btnRemove
|
||||||
|
//
|
||||||
|
this.btnRemove.Location = new System.Drawing.Point(184, 8);
|
||||||
|
this.btnRemove.Name = "btnRemove";
|
||||||
|
this.btnRemove.Size = new System.Drawing.Size(168, 23);
|
||||||
|
this.btnRemove.TabIndex = 2;
|
||||||
|
this.btnRemove.Text = "Remove";
|
||||||
|
this.btnRemove.UseVisualStyleBackColor = true;
|
||||||
|
this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click);
|
||||||
|
//
|
||||||
|
// lblWidth
|
||||||
|
//
|
||||||
|
this.lblWidth.AutoSize = true;
|
||||||
|
this.lblWidth.Location = new System.Drawing.Point(8, 416);
|
||||||
|
this.lblWidth.Name = "lblWidth";
|
||||||
|
this.lblWidth.Size = new System.Drawing.Size(38, 13);
|
||||||
|
this.lblWidth.TabIndex = 3;
|
||||||
|
this.lblWidth.Text = "Width:";
|
||||||
|
//
|
||||||
|
// nudWidth
|
||||||
|
//
|
||||||
|
this.nudWidth.Location = new System.Drawing.Point(8, 432);
|
||||||
|
this.nudWidth.Maximum = new decimal(new int[] {
|
||||||
|
10000,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.nudWidth.Name = "nudWidth";
|
||||||
|
this.nudWidth.Size = new System.Drawing.Size(80, 20);
|
||||||
|
this.nudWidth.TabIndex = 4;
|
||||||
|
this.nudWidth.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
|
//
|
||||||
|
// lblHeight
|
||||||
|
//
|
||||||
|
this.lblHeight.AutoSize = true;
|
||||||
|
this.lblHeight.Location = new System.Drawing.Point(104, 416);
|
||||||
|
this.lblHeight.Name = "lblHeight";
|
||||||
|
this.lblHeight.Size = new System.Drawing.Size(41, 13);
|
||||||
|
this.lblHeight.TabIndex = 5;
|
||||||
|
this.lblHeight.Text = "Height:";
|
||||||
|
//
|
||||||
|
// nudHeight
|
||||||
|
//
|
||||||
|
this.nudHeight.Location = new System.Drawing.Point(104, 432);
|
||||||
|
this.nudHeight.Maximum = new decimal(new int[] {
|
||||||
|
10000,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.nudHeight.Name = "nudHeight";
|
||||||
|
this.nudHeight.Size = new System.Drawing.Size(80, 20);
|
||||||
|
this.nudHeight.TabIndex = 6;
|
||||||
|
this.nudHeight.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
|
//
|
||||||
|
// cbAllowEnlarge
|
||||||
|
//
|
||||||
|
this.cbAllowEnlarge.AutoSize = true;
|
||||||
|
this.cbAllowEnlarge.Location = new System.Drawing.Point(8, 464);
|
||||||
|
this.cbAllowEnlarge.Name = "cbAllowEnlarge";
|
||||||
|
this.cbAllowEnlarge.Size = new System.Drawing.Size(89, 17);
|
||||||
|
this.cbAllowEnlarge.TabIndex = 7;
|
||||||
|
this.cbAllowEnlarge.Text = "Allow enlarge";
|
||||||
|
this.cbAllowEnlarge.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cbCenterImage
|
||||||
|
//
|
||||||
|
this.cbCenterImage.AutoSize = true;
|
||||||
|
this.cbCenterImage.Location = new System.Drawing.Point(8, 488);
|
||||||
|
this.cbCenterImage.Name = "cbCenterImage";
|
||||||
|
this.cbCenterImage.Size = new System.Drawing.Size(88, 17);
|
||||||
|
this.cbCenterImage.TabIndex = 8;
|
||||||
|
this.cbCenterImage.Text = "Center image";
|
||||||
|
this.cbCenterImage.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// lblOutputFilename
|
||||||
|
//
|
||||||
|
this.lblOutputFilename.AutoSize = true;
|
||||||
|
this.lblOutputFilename.Location = new System.Drawing.Point(8, 512);
|
||||||
|
this.lblOutputFilename.Name = "lblOutputFilename";
|
||||||
|
this.lblOutputFilename.Size = new System.Drawing.Size(87, 13);
|
||||||
|
this.lblOutputFilename.TabIndex = 9;
|
||||||
|
this.lblOutputFilename.Text = "Output file name:";
|
||||||
|
//
|
||||||
|
// txtOutputFilename
|
||||||
|
//
|
||||||
|
this.txtOutputFilename.Location = new System.Drawing.Point(8, 528);
|
||||||
|
this.txtOutputFilename.Name = "txtOutputFilename";
|
||||||
|
this.txtOutputFilename.Size = new System.Drawing.Size(256, 20);
|
||||||
|
this.txtOutputFilename.TabIndex = 10;
|
||||||
|
this.txtOutputFilename.Text = "Thumbnail_$filename";
|
||||||
|
//
|
||||||
|
// btnGenerate
|
||||||
|
//
|
||||||
|
this.btnGenerate.Location = new System.Drawing.Point(8, 560);
|
||||||
|
this.btnGenerate.Name = "btnGenerate";
|
||||||
|
this.btnGenerate.Size = new System.Drawing.Size(256, 23);
|
||||||
|
this.btnGenerate.TabIndex = 11;
|
||||||
|
this.btnGenerate.Text = "Generate thumbnails";
|
||||||
|
this.btnGenerate.UseVisualStyleBackColor = true;
|
||||||
|
this.btnGenerate.Click += new System.EventHandler(this.btnGenerate_Click);
|
||||||
|
//
|
||||||
|
// ImageThumbnailerForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(576, 593);
|
||||||
|
this.Controls.Add(this.btnGenerate);
|
||||||
|
this.Controls.Add(this.txtOutputFilename);
|
||||||
|
this.Controls.Add(this.lblOutputFilename);
|
||||||
|
this.Controls.Add(this.cbCenterImage);
|
||||||
|
this.Controls.Add(this.cbAllowEnlarge);
|
||||||
|
this.Controls.Add(this.nudHeight);
|
||||||
|
this.Controls.Add(this.lblHeight);
|
||||||
|
this.Controls.Add(this.nudWidth);
|
||||||
|
this.Controls.Add(this.lblWidth);
|
||||||
|
this.Controls.Add(this.btnRemove);
|
||||||
|
this.Controls.Add(this.btnAdd);
|
||||||
|
this.Controls.Add(this.lvImages);
|
||||||
|
this.Name = "ImageThumbnailerForm";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "ShareX - Image thumbnailer";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.nudWidth)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.nudHeight)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private HelpersLib.MyListView lvImages;
|
||||||
|
private System.Windows.Forms.Button btnAdd;
|
||||||
|
private System.Windows.Forms.Button btnRemove;
|
||||||
|
private System.Windows.Forms.Label lblWidth;
|
||||||
|
private System.Windows.Forms.NumericUpDown nudWidth;
|
||||||
|
private System.Windows.Forms.Label lblHeight;
|
||||||
|
private System.Windows.Forms.NumericUpDown nudHeight;
|
||||||
|
private System.Windows.Forms.CheckBox cbAllowEnlarge;
|
||||||
|
private System.Windows.Forms.CheckBox cbCenterImage;
|
||||||
|
private System.Windows.Forms.Label lblOutputFilename;
|
||||||
|
private System.Windows.Forms.TextBox txtOutputFilename;
|
||||||
|
private System.Windows.Forms.Button btnGenerate;
|
||||||
|
private System.Windows.Forms.ColumnHeader chImages;
|
||||||
|
}
|
||||||
|
}
|
141
ShareX.MediaLib/Forms/ImageThumbnailerForm.cs
Normal file
141
ShareX.MediaLib/Forms/ImageThumbnailerForm.cs
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
#region License Information (GPL v3)
|
||||||
|
|
||||||
|
/*
|
||||||
|
ShareX - A program that allows you to take screenshots and share any file type
|
||||||
|
Copyright (c) 2007-2017 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;
|
||||||
|
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 ImageThumbnailerForm : Form
|
||||||
|
{
|
||||||
|
public ImageThumbnailerForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
Icon = ShareXResources.Icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string[] images = ImageHelpers.OpenImageFileDialog(true);
|
||||||
|
|
||||||
|
if (images != null)
|
||||||
|
{
|
||||||
|
foreach (string image in images)
|
||||||
|
{
|
||||||
|
lvImages.Items.Add(image);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnRemove_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (lvImages.SelectedItems.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (ListViewItem lvi in lvImages.SelectedItems)
|
||||||
|
{
|
||||||
|
lvImages.Items.Remove(lvi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lvImages_DragEnter(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
|
||||||
|
{
|
||||||
|
e.Effect = DragDropEffects.Copy;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e.Effect = DragDropEffects.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lvImages_DragDrop(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
|
||||||
|
{
|
||||||
|
string[] files = e.Data.GetData(DataFormats.FileDrop, false) as string[];
|
||||||
|
|
||||||
|
if (files != null)
|
||||||
|
{
|
||||||
|
foreach (string file in files)
|
||||||
|
{
|
||||||
|
lvImages.Items.Add(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnGenerate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (lvImages.Items.Count > 0)
|
||||||
|
{
|
||||||
|
int width = (int)nudWidth.Value;
|
||||||
|
int height = (int)nudHeight.Value;
|
||||||
|
bool allowEnlarge = cbAllowEnlarge.Checked;
|
||||||
|
bool centerImage = cbCenterImage.Checked;
|
||||||
|
string outputFilename = txtOutputFilename.Text;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
foreach (ListViewItem lvi in lvImages.Items)
|
||||||
|
{
|
||||||
|
string filePath = lvi.Text;
|
||||||
|
|
||||||
|
if (File.Exists(filePath))
|
||||||
|
{
|
||||||
|
Image img = ImageHelpers.LoadImage(filePath);
|
||||||
|
|
||||||
|
if (img != null)
|
||||||
|
{
|
||||||
|
using (img = ImageHelpers.ResizeImage(img, width, height, allowEnlarge, centerImage, Color.White))
|
||||||
|
{
|
||||||
|
string folder = Path.GetDirectoryName(filePath);
|
||||||
|
string filename = Path.GetFileNameWithoutExtension(filePath);
|
||||||
|
string outputPath = Path.Combine(folder, outputFilename.Replace("$filename", filename));
|
||||||
|
outputPath = Path.ChangeExtension(outputPath, "jpg");
|
||||||
|
img.SaveJPG(outputPath, 90);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
DebugHelper.WriteException(ex);
|
||||||
|
ex.ShowError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
ShareX.MediaLib/Forms/ImageThumbnailerForm.resx
Normal file
120
ShareX.MediaLib/Forms/ImageThumbnailerForm.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>
|
|
@ -85,6 +85,12 @@
|
||||||
<Compile Include="Forms\ImageCombinerForm.Designer.cs">
|
<Compile Include="Forms\ImageCombinerForm.Designer.cs">
|
||||||
<DependentUpon>ImageCombinerForm.cs</DependentUpon>
|
<DependentUpon>ImageCombinerForm.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Forms\ImageThumbnailerForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\ImageThumbnailerForm.Designer.cs">
|
||||||
|
<DependentUpon>ImageThumbnailerForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Forms\VideoThumbnailerForm.cs">
|
<Compile Include="Forms\VideoThumbnailerForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -140,6 +146,9 @@
|
||||||
<EmbeddedResource Include="Forms\ImageCombinerForm.zh-TW.resx">
|
<EmbeddedResource Include="Forms\ImageCombinerForm.zh-TW.resx">
|
||||||
<DependentUpon>ImageCombinerForm.cs</DependentUpon>
|
<DependentUpon>ImageCombinerForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\ImageThumbnailerForm.resx">
|
||||||
|
<DependentUpon>ImageThumbnailerForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Forms\VideoThumbnailerForm.de.resx">
|
<EmbeddedResource Include="Forms\VideoThumbnailerForm.de.resx">
|
||||||
<DependentUpon>VideoThumbnailerForm.cs</DependentUpon>
|
<DependentUpon>VideoThumbnailerForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
18
ShareX/Forms/MainForm.Designer.cs
generated
18
ShareX/Forms/MainForm.Designer.cs
generated
|
@ -242,6 +242,8 @@ private void InitializeComponent()
|
||||||
this.ucNews = new ShareX.NewsListControl();
|
this.ucNews = new ShareX.NewsListControl();
|
||||||
this.pNews = new System.Windows.Forms.Panel();
|
this.pNews = new System.Windows.Forms.Panel();
|
||||||
this.btnCloseNews = new System.Windows.Forms.Button();
|
this.btnCloseNews = new System.Windows.Forms.Button();
|
||||||
|
this.tsmiImageThumbnailer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsmiTrayImageThumbnailer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
|
||||||
this.scMain.Panel1.SuspendLayout();
|
this.scMain.Panel1.SuspendLayout();
|
||||||
this.scMain.Panel2.SuspendLayout();
|
this.scMain.Panel2.SuspendLayout();
|
||||||
|
@ -580,6 +582,7 @@ private void InitializeComponent()
|
||||||
this.tsmiRuler,
|
this.tsmiRuler,
|
||||||
this.tsmiIndexFolder,
|
this.tsmiIndexFolder,
|
||||||
this.tsmiImageCombiner,
|
this.tsmiImageCombiner,
|
||||||
|
this.tsmiImageThumbnailer,
|
||||||
this.tsmiVideoThumbnailer,
|
this.tsmiVideoThumbnailer,
|
||||||
this.tsmiFTPClient,
|
this.tsmiFTPClient,
|
||||||
this.tsmiTweetMessage,
|
this.tsmiTweetMessage,
|
||||||
|
@ -1516,6 +1519,7 @@ private void InitializeComponent()
|
||||||
this.tsmiTrayRuler,
|
this.tsmiTrayRuler,
|
||||||
this.tsmiTrayIndexFolder,
|
this.tsmiTrayIndexFolder,
|
||||||
this.tsmiTrayImageCombiner,
|
this.tsmiTrayImageCombiner,
|
||||||
|
this.tsmiTrayImageThumbnailer,
|
||||||
this.tsmiTrayVideoThumbnailer,
|
this.tsmiTrayVideoThumbnailer,
|
||||||
this.tsmiTrayFTPClient,
|
this.tsmiTrayFTPClient,
|
||||||
this.tsmiTrayTweetMessage,
|
this.tsmiTrayTweetMessage,
|
||||||
|
@ -1881,6 +1885,18 @@ private void InitializeComponent()
|
||||||
this.btnCloseNews.UseVisualStyleBackColor = true;
|
this.btnCloseNews.UseVisualStyleBackColor = true;
|
||||||
this.btnCloseNews.Click += new System.EventHandler(this.btnCloseNews_Click);
|
this.btnCloseNews.Click += new System.EventHandler(this.btnCloseNews_Click);
|
||||||
//
|
//
|
||||||
|
// tsmiImageThumbnailer
|
||||||
|
//
|
||||||
|
this.tsmiImageThumbnailer.Name = "tsmiImageThumbnailer";
|
||||||
|
resources.ApplyResources(this.tsmiImageThumbnailer, "tsmiImageThumbnailer");
|
||||||
|
this.tsmiImageThumbnailer.Click += new System.EventHandler(this.tsmiImageThumbnailer_Click);
|
||||||
|
//
|
||||||
|
// tsmiTrayImageThumbnailer
|
||||||
|
//
|
||||||
|
this.tsmiTrayImageThumbnailer.Name = "tsmiTrayImageThumbnailer";
|
||||||
|
resources.ApplyResources(this.tsmiTrayImageThumbnailer, "tsmiTrayImageThumbnailer");
|
||||||
|
this.tsmiTrayImageThumbnailer.Click += new System.EventHandler(this.tsmiImageThumbnailer_Click);
|
||||||
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AllowDrop = true;
|
this.AllowDrop = true;
|
||||||
|
@ -2134,5 +2150,7 @@ private void InitializeComponent()
|
||||||
private HelpersLib.ToolStripButtonColorAnimation tsbNews;
|
private HelpersLib.ToolStripButtonColorAnimation tsbNews;
|
||||||
private System.Windows.Forms.Panel pNews;
|
private System.Windows.Forms.Panel pNews;
|
||||||
private System.Windows.Forms.Button btnCloseNews;
|
private System.Windows.Forms.Button btnCloseNews;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsmiImageThumbnailer;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsmiTrayImageThumbnailer;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1459,6 +1459,11 @@ private void tsmiImageCombiner_Click(object sender, EventArgs e)
|
||||||
TaskHelpers.OpenImageCombiner();
|
TaskHelpers.OpenImageCombiner();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void tsmiImageThumbnailer_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
TaskHelpers.OpenImageThumbnailer();
|
||||||
|
}
|
||||||
|
|
||||||
private void tsmiVideoThumbnailer_Click(object sender, EventArgs e)
|
private void tsmiVideoThumbnailer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
TaskHelpers.OpenVideoThumbnailer();
|
TaskHelpers.OpenVideoThumbnailer();
|
||||||
|
|
|
@ -544,85 +544,91 @@
|
||||||
<value>Workflows</value>
|
<value>Workflows</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiColorPicker.Text" xml:space="preserve">
|
<data name="tsmiColorPicker.Text" xml:space="preserve">
|
||||||
<value>Color picker...</value>
|
<value>Color picker...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiScreenColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiScreenColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiScreenColorPicker.Text" xml:space="preserve">
|
<data name="tsmiScreenColorPicker.Text" xml:space="preserve">
|
||||||
<value>Screen color picker...</value>
|
<value>Screen color picker...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiAnnotateImage.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiAnnotateImage.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiAnnotateImage.Text" xml:space="preserve">
|
<data name="tsmiAnnotateImage.Text" xml:space="preserve">
|
||||||
<value>Annotate image...</value>
|
<value>Annotate image...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiImageEffects.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiImageEffects.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiImageEffects.Text" xml:space="preserve">
|
<data name="tsmiImageEffects.Text" xml:space="preserve">
|
||||||
<value>Image effects...</value>
|
<value>Image effects...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiHashCheck.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiHashCheck.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiHashCheck.Text" xml:space="preserve">
|
<data name="tsmiHashCheck.Text" xml:space="preserve">
|
||||||
<value>Hash check...</value>
|
<value>Hash check...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiDNSChanger.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiDNSChanger.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiDNSChanger.Text" xml:space="preserve">
|
<data name="tsmiDNSChanger.Text" xml:space="preserve">
|
||||||
<value>DNS changer...</value>
|
<value>DNS changer...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiQRCode.Text" xml:space="preserve">
|
<data name="tsmiQRCode.Text" xml:space="preserve">
|
||||||
<value>QR code...</value>
|
<value>QR code...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiRuler.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiRuler.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiRuler.Text" xml:space="preserve">
|
<data name="tsmiRuler.Text" xml:space="preserve">
|
||||||
<value>Ruler...</value>
|
<value>Ruler...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiIndexFolder.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiIndexFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiIndexFolder.Text" xml:space="preserve">
|
<data name="tsmiIndexFolder.Text" xml:space="preserve">
|
||||||
<value>Directory indexer...</value>
|
<value>Directory indexer...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiImageCombiner.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiImageCombiner.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiImageCombiner.Text" xml:space="preserve">
|
<data name="tsmiImageCombiner.Text" xml:space="preserve">
|
||||||
<value>Image combiner...</value>
|
<value>Image combiner...</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsmiImageThumbnailer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>184, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsmiImageThumbnailer.Text" xml:space="preserve">
|
||||||
|
<value>Image thumbnailer...</value>
|
||||||
|
</data>
|
||||||
<data name="tsmiVideoThumbnailer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiVideoThumbnailer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiVideoThumbnailer.Text" xml:space="preserve">
|
<data name="tsmiVideoThumbnailer.Text" xml:space="preserve">
|
||||||
<value>Video thumbnailer...</value>
|
<value>Video thumbnailer...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiFTPClient.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiFTPClient.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiFTPClient.Text" xml:space="preserve">
|
<data name="tsmiFTPClient.Text" xml:space="preserve">
|
||||||
<value>FTP client...</value>
|
<value>FTP client...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTweetMessage.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTweetMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTweetMessage.Text" xml:space="preserve">
|
<data name="tsmiTweetMessage.Text" xml:space="preserve">
|
||||||
<value>Tweet message...</value>
|
<value>Tweet message...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiMonitorTest.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiMonitorTest.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiMonitorTest.Text" xml:space="preserve">
|
<data name="tsmiMonitorTest.Text" xml:space="preserve">
|
||||||
<value>Monitor test...</value>
|
<value>Monitor test...</value>
|
||||||
|
@ -917,7 +923,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiOpenURL.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiOpenURL.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Enter</value>
|
<value>Enter</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiOpenURL.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiOpenURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>173, 22</value>
|
<value>173, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -947,7 +953,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiOpenFile.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiOpenFile.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Ctrl+Enter</value>
|
<value>Ctrl+Enter</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiOpenFile.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiOpenFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>173, 22</value>
|
<value>173, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -956,7 +962,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiOpenFolder.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiOpenFolder.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Shift+Enter</value>
|
<value>Shift+Enter</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiOpenFolder.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiOpenFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>173, 22</value>
|
<value>173, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -977,7 +983,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiCopyURL.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiCopyURL.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Ctrl+C</value>
|
<value>Ctrl+C</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiCopyURL.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiCopyURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>233, 22</value>
|
<value>233, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1007,7 +1013,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiCopyFile.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiCopyFile.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Shift+C</value>
|
<value>Shift+C</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiCopyFile.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiCopyFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>233, 22</value>
|
<value>233, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1016,7 +1022,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiCopyImage.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiCopyImage.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Alt+C</value>
|
<value>Alt+C</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiCopyImage.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiCopyImage.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>233, 22</value>
|
<value>233, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1088,7 +1094,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiCopyFilePath.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiCopyFilePath.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Ctrl+Shift+C</value>
|
<value>Ctrl+Shift+C</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiCopyFilePath.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiCopyFilePath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>233, 22</value>
|
<value>233, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1127,7 +1133,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiUploadSelectedFile.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiUploadSelectedFile.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Ctrl+U</value>
|
<value>Ctrl+U</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiUploadSelectedFile.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiUploadSelectedFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>228, 22</value>
|
<value>228, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1136,7 +1142,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiDownloadSelectedURL.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiDownloadSelectedURL.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Ctrl+D</value>
|
<value>Ctrl+D</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiDownloadSelectedURL.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiDownloadSelectedURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>228, 22</value>
|
<value>228, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1145,7 +1151,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiEditSelectedFile.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiEditSelectedFile.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Ctrl+E</value>
|
<value>Ctrl+E</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiEditSelectedFile.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiEditSelectedFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>228, 22</value>
|
<value>228, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1154,7 +1160,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiDeleteSelectedItem.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiDeleteSelectedItem.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Del</value>
|
<value>Del</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiDeleteSelectedItem.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiDeleteSelectedItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>228, 22</value>
|
<value>228, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1163,7 +1169,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiDeleteSelectedFile.ShortcutKeyDisplayString" xml:space="preserve">
|
<data name="tsmiDeleteSelectedFile.ShortcutKeyDisplayString" xml:space="preserve">
|
||||||
<value>Shift+Del</value>
|
<value>Shift+Del</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<data name="tsmiDeleteSelectedFile.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiDeleteSelectedFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>228, 22</value>
|
<value>228, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1399,85 +1405,91 @@
|
||||||
<value>Workflows</value>
|
<value>Workflows</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayColorPicker.Text" xml:space="preserve">
|
<data name="tsmiTrayColorPicker.Text" xml:space="preserve">
|
||||||
<value>Color picker...</value>
|
<value>Color picker...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayScreenColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayScreenColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayScreenColorPicker.Text" xml:space="preserve">
|
<data name="tsmiTrayScreenColorPicker.Text" xml:space="preserve">
|
||||||
<value>Screen color picker...</value>
|
<value>Screen color picker...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayAnnotateImage.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayAnnotateImage.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayAnnotateImage.Text" xml:space="preserve">
|
<data name="tsmiTrayAnnotateImage.Text" xml:space="preserve">
|
||||||
<value>Annotate image...</value>
|
<value>Annotate image...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayImageEffects.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayImageEffects.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayImageEffects.Text" xml:space="preserve">
|
<data name="tsmiTrayImageEffects.Text" xml:space="preserve">
|
||||||
<value>Image effects...</value>
|
<value>Image effects...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayHashCheck.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayHashCheck.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayHashCheck.Text" xml:space="preserve">
|
<data name="tsmiTrayHashCheck.Text" xml:space="preserve">
|
||||||
<value>Hash check...</value>
|
<value>Hash check...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayDNSChanger.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayDNSChanger.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayDNSChanger.Text" xml:space="preserve">
|
<data name="tsmiTrayDNSChanger.Text" xml:space="preserve">
|
||||||
<value>DNS changer...</value>
|
<value>DNS changer...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayQRCode.Text" xml:space="preserve">
|
<data name="tsmiTrayQRCode.Text" xml:space="preserve">
|
||||||
<value>QR code...</value>
|
<value>QR code...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayRuler.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayRuler.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayRuler.Text" xml:space="preserve">
|
<data name="tsmiTrayRuler.Text" xml:space="preserve">
|
||||||
<value>Ruler...</value>
|
<value>Ruler...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayIndexFolder.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayIndexFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayIndexFolder.Text" xml:space="preserve">
|
<data name="tsmiTrayIndexFolder.Text" xml:space="preserve">
|
||||||
<value>Directory indexer...</value>
|
<value>Directory indexer...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayImageCombiner.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayImageCombiner.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayImageCombiner.Text" xml:space="preserve">
|
<data name="tsmiTrayImageCombiner.Text" xml:space="preserve">
|
||||||
<value>Image combiner...</value>
|
<value>Image combiner...</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsmiTrayImageThumbnailer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>184, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsmiTrayImageThumbnailer.Text" xml:space="preserve">
|
||||||
|
<value>Image thumbnailer...</value>
|
||||||
|
</data>
|
||||||
<data name="tsmiTrayVideoThumbnailer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayVideoThumbnailer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayVideoThumbnailer.Text" xml:space="preserve">
|
<data name="tsmiTrayVideoThumbnailer.Text" xml:space="preserve">
|
||||||
<value>Video thumbnailer...</value>
|
<value>Video thumbnailer...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayFTPClient.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayFTPClient.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayFTPClient.Text" xml:space="preserve">
|
<data name="tsmiTrayFTPClient.Text" xml:space="preserve">
|
||||||
<value>FTP client...</value>
|
<value>FTP client...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayTweetMessage.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayTweetMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayTweetMessage.Text" xml:space="preserve">
|
<data name="tsmiTrayTweetMessage.Text" xml:space="preserve">
|
||||||
<value>Tweet message...</value>
|
<value>Tweet message...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayMonitorTest.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsmiTrayMonitorTest.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>183, 22</value>
|
<value>184, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsmiTrayMonitorTest.Text" xml:space="preserve">
|
<data name="tsmiTrayMonitorTest.Text" xml:space="preserve">
|
||||||
<value>Monitor test...</value>
|
<value>Monitor test...</value>
|
||||||
|
@ -1678,7 +1690,7 @@
|
||||||
<value>Exit</value>
|
<value>Exit</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmsTray.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmsTray.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>193, 484</value>
|
<value>193, 506</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmsTray.Name" xml:space="preserve">
|
<data name=">>cmsTray.Name" xml:space="preserve">
|
||||||
<value>cmsTray</value>
|
<value>cmsTray</value>
|
||||||
|
@ -1688,7 +1700,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="niTray.Text" xml:space="preserve">
|
<data name="niTray.Text" xml:space="preserve">
|
||||||
<value>ShareX</value>
|
<value>ShareX</value>
|
||||||
<comment>@Invariant</comment></data>
|
</data>
|
||||||
<metadata name="timerTraySingleClick.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="timerTraySingleClick.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>405, 17</value>
|
<value>405, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -2985,6 +2997,18 @@
|
||||||
<data name=">>ttMain.Type" xml:space="preserve">
|
<data name=">>ttMain.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>tsmiImageThumbnailer.Name" xml:space="preserve">
|
||||||
|
<value>tsmiImageThumbnailer</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tsmiImageThumbnailer.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=">>tsmiTrayImageThumbnailer.Name" xml:space="preserve">
|
||||||
|
<value>tsmiTrayImageThumbnailer</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tsmiTrayImageThumbnailer.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=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>MainForm</value>
|
<value>MainForm</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -41,7 +41,6 @@ You should have received a copy of the GNU General Public License
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Drawing2D;
|
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Speech.Synthesis;
|
using System.Speech.Synthesis;
|
||||||
|
@ -767,6 +766,14 @@ public static void OpenImageCombiner(TaskSettings taskSettings = null, IEnumerab
|
||||||
imageCombinerForm.Show();
|
imageCombinerForm.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void OpenImageThumbnailer(TaskSettings taskSettings = null)
|
||||||
|
{
|
||||||
|
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
|
||||||
|
|
||||||
|
ImageThumbnailerForm imageThumbnailerForm = new ImageThumbnailerForm();
|
||||||
|
imageThumbnailerForm.Show();
|
||||||
|
}
|
||||||
|
|
||||||
public static void OpenVideoThumbnailer(TaskSettings taskSettings = null)
|
public static void OpenVideoThumbnailer(TaskSettings taskSettings = null)
|
||||||
{
|
{
|
||||||
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
|
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
|
||||||
|
|
Loading…
Reference in a new issue