2015-08-04 10:31:43 +03:00
#region License Information ( GPL v3 )
/ *
2015-08-07 12:00:01 +03:00
ShareX - A program that allows you to take screenshots and share any file type
2025-01-08 03:46:27 +03:00
Copyright ( c ) 2007 - 2025 ShareX Team
2015-08-04 10:31:43 +03:00
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.ComponentModel ;
2015-08-06 05:25:07 +08:00
using System.Drawing.Design ;
2015-08-04 10:31:43 +03:00
namespace ShareX.MediaLib
{
public class VideoThumbnailOptions
{
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(ThumbnailLocationType.DefaultFolder), Description("Create thumbnails in default screenshot folder, same folder as the media file or in a custom folder.")]
2015-08-04 16:05:14 +03:00
public ThumbnailLocationType OutputLocation { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(""), Description("Output folder where thumbnails will get saved."), Editor(typeof(DirectoryNameEditor), typeof(UITypeEditor))]
2015-08-05 14:44:04 +03:00
public string CustomOutputDirectory { get ; set ; }
2015-08-04 10:31:43 +03:00
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(EImageFormat.PNG), Description("Thumbnail image format to save.")]
2015-08-05 14:44:04 +03:00
public EImageFormat ImageFormat { get ; set ; }
2015-08-04 10:31:43 +03:00
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(9), Description("Total number of thumbnails to take.")]
public int ThumbnailCount { get ; set ; }
2015-08-04 10:31:43 +03:00
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue("_Thumbnail"), Description("Suffix to append to the thumbnail filename.")]
2015-08-06 05:25:07 +08:00
public string FilenameSuffix { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(false), Description("Choose random frame each time a media file is processed.")]
2015-08-04 10:31:43 +03:00
public bool RandomFrame { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(true), Description("Upload thumbnails.")]
public bool UploadThumbnails { get ; set ; }
2015-08-04 10:31:43 +03:00
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(false), Description("After combine thumbnails keep single image files.")]
2015-08-04 10:31:43 +03:00
public bool KeepScreenshots { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(false), Description("After all thumbnails taken open output directory automatically.")]
2015-08-04 16:05:14 +03:00
public bool OpenDirectory { get ; set ; }
2015-08-04 10:31:43 +03:00
2015-08-07 12:02:42 +03:00
[Category("Thumbnails"), DefaultValue(512), Description("Maximum thumbnail width size, 0 means don't resize.")]
2015-08-04 10:31:43 +03:00
public int MaxThumbnailWidth { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails / Combined"), DefaultValue(true), Description("Combine all thumbnails to one large thumbnail.")]
2015-08-04 10:31:43 +03:00
public bool CombineScreenshots { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails / Combined"), DefaultValue(10), Description("Space between border and content as pixel.")]
2015-08-04 10:31:43 +03:00
public int Padding { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails / Combined"), DefaultValue(10), Description("Space between thumbnails as pixel.")]
2015-08-04 10:31:43 +03:00
public int Spacing { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails / Combined"), DefaultValue(3), Description("Number of thumbnails per row.")]
2015-08-04 10:31:43 +03:00
public int ColumnCount { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails / Combined"), DefaultValue(true), Description("Add video information to the combined thumbnail.")]
2015-08-05 14:44:04 +03:00
public bool AddVideoInfo { get ; set ; }
2015-08-04 10:31:43 +03:00
2015-08-07 12:02:42 +03:00
[Category("Thumbnails / Combined"), DefaultValue(true), Description("Add timestamp of thumbnail at corner of image.")]
2015-08-04 10:31:43 +03:00
public bool AddTimestamp { get ; set ; }
2015-08-07 12:02:42 +03:00
[Category("Thumbnails / Combined"), DefaultValue(true), Description("Draw rectangle shadow behind thumbnails.")]
2015-08-04 10:31:43 +03:00
public bool DrawShadow { get ; set ; }
2015-08-04 14:47:34 +03:00
2015-08-07 12:02:42 +03:00
[Category("Thumbnails / Combined"), DefaultValue(true), Description("Draw border around thumbnails.")]
2015-08-05 16:28:32 +03:00
public bool DrawBorder { get ; set ; }
public string DefaultOutputDirectory , LastVideoPath ;
2015-08-04 14:47:34 +03:00
public VideoThumbnailOptions ( )
{
this . ApplyDefaultPropertyValues ( ) ;
}
2015-08-04 10:31:43 +03:00
}
}