Added corner radius, blur radius, pixel size options to menu. Removed corner radius hotkey because now it is changeable from menu. Numpad hotkey changes to fit all drawings.

This commit is contained in:
Jaex 2016-05-07 16:24:32 +03:00
parent 431b733fae
commit cd2cbbabc2
20 changed files with 119 additions and 244 deletions

View file

@ -36,7 +36,7 @@ You should have received a copy of the GNU General Public License
namespace ShareX.ScreenCaptureLib
{
public class RectangleAnnotateForm : Form
public class RectangleRegionAnnotateForm : Form
{
public static Rectangle LastSelectionRectangle0Based { get; private set; }
@ -95,7 +95,7 @@ public Point PreviousMousePosition0Based
private Stopwatch penTimer;
private Font infoFont;
public RectangleAnnotateForm(RectangleAnnotateOptions options)
public RectangleRegionAnnotateForm(RectangleAnnotateOptions options)
{
Options = options;

View file

@ -417,39 +417,28 @@ protected virtual void WriteTips(StringBuilder sb)
// TODO: Translate
sb.AppendLine("[Mouse wheel] Change current tool");
if (AreaManager.CurrentShapeType == ShapeType.RegionRectangle) sb.Append("-> ");
sb.AppendLine(Resources.RectangleRegion_WriteTips__Numpad_1__Rectangle_shape);
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 0", ShapeType.RegionRectangle.GetLocalizedDescription()));
if (AreaManager.CurrentShapeType == ShapeType.RegionRoundedRectangle) sb.Append("-> ");
sb.AppendLine(Resources.RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape);
sb.AppendLine(ShapeType.RegionRoundedRectangle.GetLocalizedDescription());
if (AreaManager.CurrentShapeType == ShapeType.RegionEllipse) sb.Append("-> ");
sb.AppendLine(Resources.RectangleRegion_WriteTips__Numpad_3__Ellipse_shape);
// TODO: Translate
sb.AppendLine(ShapeType.RegionEllipse.GetLocalizedDescription());
if (AreaManager.CurrentShapeType == ShapeType.DrawingRectangle) sb.Append("-> ");
sb.AppendLine("[Numpad 4] Rectangle drawing");
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 1", ShapeType.DrawingRectangle.GetLocalizedDescription()));
if (AreaManager.CurrentShapeType == ShapeType.DrawingRoundedRectangle) sb.Append("-> ");
sb.AppendLine("[Numpad 5] Rounded rectangle drawing");
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 2", ShapeType.DrawingRoundedRectangle.GetLocalizedDescription()));
if (AreaManager.CurrentShapeType == ShapeType.DrawingEllipse) sb.Append("-> ");
sb.AppendLine("[Numpad 6] Ellipse drawing");
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 3", ShapeType.DrawingEllipse.GetLocalizedDescription()));
if (AreaManager.CurrentShapeType == ShapeType.DrawingLine) sb.Append("-> ");
sb.AppendLine("[Numpad 7] Line drawing");
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 4", ShapeType.DrawingLine.GetLocalizedDescription()));
if (AreaManager.CurrentShapeType == ShapeType.DrawingArrow) sb.Append("-> ");
sb.AppendLine("[Numpad 8] Arrow drawing");
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 5", ShapeType.DrawingArrow.GetLocalizedDescription()));
if (AreaManager.CurrentShapeType == ShapeType.DrawingBlur) sb.Append("-> ");
sb.AppendLine("[Numpad 9] Blur drawing");
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 6", ShapeType.DrawingBlur.GetLocalizedDescription()));
if (AreaManager.CurrentShapeType == ShapeType.DrawingPixelate) sb.Append("-> ");
sb.AppendLine("Pixelate drawing");
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 7", ShapeType.DrawingPixelate.GetLocalizedDescription()));
if (AreaManager.CurrentShapeType == ShapeType.DrawingHighlight) sb.Append("-> ");
sb.AppendLine("Highlight drawing");
switch (AreaManager.CurrentShapeType)
{
case ShapeType.RegionRoundedRectangle:
case ShapeType.DrawingRoundedRectangle:
sb.AppendLine(Resources.RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius);
break;
}
sb.AppendLine(string.Format("[{0}] {1}", "Numpad 8", ShapeType.DrawingHighlight.GetLocalizedDescription()));
}
private string GetAreaText(Rectangle area)

View file

@ -34,7 +34,7 @@ You should have received a copy of the GNU General Public License
namespace ShareX.ScreenCaptureLib
{
public class RectangleLightForm : Form
public class RectangleRegionLightForm : Form
{
public static Rectangle LastSelectionRectangle0Based { get; private set; }
@ -66,7 +66,7 @@ public Rectangle SelectionRectangle0Based
private bool isMouseDown;
private Stopwatch penTimer;
public RectangleLightForm()
public RectangleRegionLightForm()
{
backgroundImage = Screenshot.CaptureFullscreen();
backgroundBrush = new TextureBrush(backgroundImage);

View file

@ -34,7 +34,7 @@ You should have received a copy of the GNU General Public License
namespace ShareX.ScreenCaptureLib
{
public class RectangleTransparentForm : LayeredForm
public class RectangleRegionTransparentForm : LayeredForm
{
public static Rectangle LastSelectionRectangle0Based { get; private set; }
@ -77,7 +77,7 @@ private Rectangle PreviousSelectionRectangle0Based
private bool isMouseDown;
private Stopwatch penTimer;
public RectangleTransparentForm()
public RectangleRegionTransparentForm()
{
clearPen = new Pen(Color.FromArgb(1, 0, 0, 0));
borderDotPen = new Pen(Color.Black, 1);

View file

@ -418,42 +418,6 @@ internal static string RectangleRegion_WriteTips__Insert__Stop_region_selection
}
}
/// <summary>
/// Looks up a localized string similar to [Numpad + or -] Change rounded rectangle corner radius.
/// </summary>
internal static string RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius {
get {
return ResourceManager.GetString("RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Numpad 1] Rectangle region.
/// </summary>
internal static string RectangleRegion_WriteTips__Numpad_1__Rectangle_shape {
get {
return ResourceManager.GetString("RectangleRegion_WriteTips__Numpad_1__Rectangle_shape", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Numpad 2] Rounded rectangle region.
/// </summary>
internal static string RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape {
get {
return ResourceManager.GetString("RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Numpad 3] Ellipse region.
/// </summary>
internal static string RectangleRegion_WriteTips__Numpad_3__Ellipse_shape {
get {
return ResourceManager.GetString("RectangleRegion_WriteTips__Numpad_3__Ellipse_shape", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Esc] Cancel capture.
/// </summary>

View file

@ -233,18 +233,6 @@ Distanz: {6:0.00} px / Winkel: {7:0.00}°</value>
<data name="RectangleRegion_WriteTips__Insert__Stop_region_selection" xml:space="preserve">
<value>[Linksklick loslassen] [Einf] Regionsauswahl beenden</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[Numpad + oder -] Radius der abgerundeten Rechteck Ecken ändern</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[Numpad 1] Rechteckform</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[Numpad 2] abgerundete Rechteckform</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[Numpad 3] Ellipsenform</value>
</data>
<data name="ScrollingCaptureForm_StartCapture_Stop_capture" xml:space="preserve">
<value>Aufnahme Stoppen</value>
</data>

View file

@ -215,21 +215,9 @@ Distance : {6:0.00} px / Angle : {7:0.00}°</value>
<data name="RectangleRegion_WriteTips__Space__Fullscreen_capture" xml:space="preserve">
<value>[Espace] Capture plein écran</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[Pavé numérique 3] Forme elliptique</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[Pavé numérique 1] Forme rectangulaire</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[Pavé numérique 2] Forme rectangulaire arrondie</value>
</data>
<data name="RectangleRegion_WriteTips__Ctrl___C__Copy_info" xml:space="preserve">
<value>[Ctrl + C] Copier les infos</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[Pavé numérique + ou -] Modifier le rayon du coin du rectangle arrondi</value>
</data>
<data name="RectangleRegion_WriteTips__Right_click__Cancel_region_selection" xml:space="preserve">
<value>[Clic droit] [Suppr] Annuler la sélection de la région</value>
</data>

View file

@ -239,18 +239,6 @@ Afstand: {6:0.00} px / Hoek: {7:0.00}°</value>
<data name="RectangleRegion_WriteTips__Insert__Stop_region_selection" xml:space="preserve">
<value>[Laat linkermuisknop los] [Insert] Beëindig regio selectie</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[Numpad + of -] Pas diameter afgeronde rechthoek aan</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[Numpad 1] Rechthoekige vorm</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[Numpad 2] Rechthoekige vorm (afgeronde hoeken)</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[Numpad 3] Ellipsvorm</value>
</data>
<data name="RectangleRegion_WriteTips__Right_click___Esc__Cancel_capture" xml:space="preserve">
<value>[Esc] Annuleer vastleggen</value>
</data>

View file

@ -231,15 +231,6 @@ Distância: {6:0.00} px / Ângulo: {7:0.00}°</value>
<data name="RectangleRegion_WriteTips__Right_click_on_selection___Delete__Remove_region" xml:space="preserve">
<value>[Delete] Remover região</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[Teclado numérico 1] Formato de retângulo</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[Teclado numérico 3] Formato de elipse</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[Teclado numérico 2] Formato de retângulo arredondado</value>
</data>
<data name="RectangleRegion_WriteTips_bottom_right" xml:space="preserve">
<value>canto inferior direito</value>
</data>
@ -264,9 +255,6 @@ Distância: {6:0.00} px / Ângulo: {7:0.00}°</value>
<data name="RectangleRegion_WriteTips__Insert__Stop_region_selection" xml:space="preserve">
<value>[Soltar o botão esquerdo][Insert] Parar seleção de região</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[Numpad + or -] Mudar o raio do canto do retângulo arrendondado</value>
</data>
<data name="ScrollingCaptureForm_StartCapture_Stop_capture" xml:space="preserve">
<value>Parar captura</value>
</data>

View file

@ -167,9 +167,6 @@ X: {4} Y: {5}</value>
Width: {4} px / Height: {5} px
Distance: {6:0.00} px / Angle: {7:0.00}°</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[Numpad 1] Rectangle region</value>
</data>
<data name="RectangleRegion_WriteTips__Right_click_on_selection___Delete__Remove_region" xml:space="preserve">
<value>[Delete] Remove region</value>
</data>
@ -210,18 +207,12 @@ Distance: {6:0.00} px / Angle: {7:0.00}°</value>
<data name="RectangleRegion_WriteTips__Right_click___Esc__Cancel_capture" xml:space="preserve">
<value>[Esc] Cancel capture</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[Numpad 2] Rounded rectangle region</value>
</data>
<data name="FFmpegOptionsForm_buttonFFmpegBrowse_Click_Browse_for_ffmpeg_exe" xml:space="preserve">
<value>Browse for ffmpeg.exe</value>
</data>
<data name="RectangleRegion_WriteTips__Double_Left_click___Enter__Capture_regions" xml:space="preserve">
<value>[Double left click] [Enter] Capture regions</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[Numpad 3] Ellipse region</value>
</data>
<data name="RectangleRegion_WriteTips__Ctrl___C__Copy_info" xml:space="preserve">
<value>[Ctrl + C] Copy info</value>
</data>
@ -231,9 +222,6 @@ Distance: {6:0.00} px / Angle: {7:0.00}°</value>
<data name="RectangleRegion_WriteTips__Ctrl___C__Copy_position" xml:space="preserve">
<value>[Ctrl + C] Copy position</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[Numpad + or -] Change rounded rectangle corner radius</value>
</data>
<data name="FFmpegOptionsForm_DownloaderForm_InstallRequested_Successfully_downloaded_FFmpeg_" xml:space="preserve">
<value>Successfully downloaded FFmpeg.</value>
</data>

View file

@ -254,18 +254,6 @@
<data name="RectangleRegion_WriteTips__Insert__Stop_region_selection" xml:space="preserve">
<value>[Отпустить ЛКМ] [Insert] Закончить выбор области</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[+ или - на циф. клавиатуре] Изменить радиус скругления</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[1 на циф. клавиатуре] Прямоугольник</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[2 на циф. клавиатуре] Скругленный прямоугольник</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[3 на циф. клавиатуре] Эллипс</value>
</data>
<data name="ScrollingCaptureForm_StartCapture_Stop_capture" xml:space="preserve">
<value>Остановить захват</value>
</data>

View file

@ -239,18 +239,6 @@ Mesafe: {6:0.00} px / Açı: {7:0.00}°</value>
<data name="RectangleRegion_WriteTips__Hold_Shift__Move_selected_region_instead_of_resizing" xml:space="preserve">
<value>[Shift basılı tut] Seçili alanı taşı boyutlandırmak yerine</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[Tuş takımı + veya -] Yuvarlatılmış dikdörtgen kenar yarıçapını değiştir</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[Tuş takımı 1] Dikdörtgen şekli</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[Tuş takımı 2] Yuvarlatılmış dikdörtgen şekli</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[Tuş takımı 3] Elips şekli</value>
</data>
<data name="RectangleRegion_WriteTips__Right_click___Esc__Cancel_capture" xml:space="preserve">
<value>[Esc] Yakalamayı iptal et</value>
</data>

View file

@ -233,18 +233,6 @@
Dài: {4} px / Rộng: {5} px
Khoảng cách: {6:0.00} px / Góc: {7:0.00}°</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[Numpad + hoặc -] Thay đổi độ tròn của góc ở hình chữ nhật</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[Numpad 3] Hình ellipse</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[Numpad 2] Hình chữ nhật góc bo tròn</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[Numpad 1] Hình chữ nhật</value>
</data>
<data name="RectangleAnnotate_InitializeComponent_Rectangle_capture_annotate" xml:space="preserve">
<value>Chụp hình chữ nhật (Đánh dấu)</value>
</data>

View file

@ -176,9 +176,6 @@
<data name="RectangleRegion_WriteTips__Hold_Left_click_on_selection__Move_region" xml:space="preserve">
<value>[按住左键单击选择]移动区域</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_1__Rectangle_shape" xml:space="preserve">
<value>[小键盘1]矩形形状</value>
</data>
<data name="RectangleRegion_WriteTips__Right_click_on_selection___Delete__Remove_region" xml:space="preserve">
<value>[Delete]删除区域</value>
</data>
@ -206,15 +203,9 @@
<data name="RectangleRegion_WriteTips__Right_click___Esc__Cancel_capture" xml:space="preserve">
<value>[Esc]取消捕捉</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_2__Rounded_rectangle_shape" xml:space="preserve">
<value>[小键盘2]圆角矩形</value>
</data>
<data name="RectangleRegion_WriteTips__Double_Left_click___Enter__Capture_regions" xml:space="preserve">
<value>[左键双击] [Enter]捕捉区域</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad_3__Ellipse_shape" xml:space="preserve">
<value>[小键盘3]椭圆</value>
</data>
<data name="RectangleRegion_WriteTips__Ctrl___C__Copy_info" xml:space="preserve">
<value>[Ctrl + C] 复制信息</value>
</data>
@ -224,9 +215,6 @@
<data name="RectangleTransparent_RectangleTransparent_Rectangle_capture_transparent" xml:space="preserve">
<value>透明矩形捕捉</value>
</data>
<data name="RectangleRegion_WriteTips__Numpad___or____Change_rounded_rectangle_corner_radius" xml:space="preserve">
<value>[数字键盘+或 - ]更改圆角矩形圆角半径</value>
</data>
<data name="RectangleRegion_WriteTips__Esc__Cancel_capture" xml:space="preserve">
<value>[Esc] 取消捕捉</value>
</data>

View file

@ -140,8 +140,6 @@ public bool IsResizing
public bool IncludeControls { get; set; }
public int MinimumSize { get; set; } = 3;
public int RoundedRectangleRadiusIncrement { get; } = 3;
private RectangleRegionForm surface;
private SurfaceOptions config;
private ContextMenuStrip cmsContextMenu;
@ -216,7 +214,7 @@ private void CreateContextMenu()
config.ShapeBorderColor = dialogColor.NewColor;
if (tsmiChangeBorderColor.Image != null) tsmiChangeBorderColor.Image.Dispose();
tsmiChangeBorderColor.Image = ImageHelpers.CreateColorPickerIcon(config.ShapeBorderColor, new Rectangle(0, 0, 16, 16));
UpdateShape();
UpdateCurrentShape();
}
}
@ -233,7 +231,7 @@ private void CreateContextMenu()
tslnudBorderSize.LabeledNumericUpDownControl.ValueChanged = (sender, e) =>
{
config.ShapeBorderSize = (int)tslnudBorderSize.LabeledNumericUpDownControl.Value;
UpdateShape();
UpdateCurrentShape();
};
cmsContextMenu.Items.Add(tslnudBorderSize);
@ -249,7 +247,7 @@ private void CreateContextMenu()
config.ShapeFillColor = dialogColor.NewColor;
if (tsmiChangeFillColor.Image != null) tsmiChangeFillColor.Image.Dispose();
tsmiChangeFillColor.Image = ImageHelpers.CreateColorPickerIcon(config.ShapeFillColor, new Rectangle(0, 0, 16, 16));
UpdateShape();
UpdateCurrentShape();
}
}
@ -258,6 +256,43 @@ private void CreateContextMenu()
tsmiChangeFillColor.Image = ImageHelpers.CreateColorPickerIcon(config.ShapeFillColor, new Rectangle(0, 0, 16, 16));
cmsContextMenu.Items.Add(tsmiChangeFillColor);
ToolStripLabeledNumericUpDown tslnudRoundedRectangleRadius = new ToolStripLabeledNumericUpDown();
tslnudRoundedRectangleRadius.LabeledNumericUpDownControl.Text = "Corner radius:";
tslnudRoundedRectangleRadius.LabeledNumericUpDownControl.Minimum = 0;
tslnudRoundedRectangleRadius.LabeledNumericUpDownControl.Maximum = 150;
tslnudRoundedRectangleRadius.LabeledNumericUpDownControl.Increment = 3;
tslnudRoundedRectangleRadius.LabeledNumericUpDownControl.Value = config.ShapeRoundedRectangleRadius;
tslnudRoundedRectangleRadius.LabeledNumericUpDownControl.ValueChanged = (sender, e) =>
{
config.ShapeRoundedRectangleRadius = (int)tslnudRoundedRectangleRadius.LabeledNumericUpDownControl.Value;
UpdateCurrentShape();
};
cmsContextMenu.Items.Add(tslnudRoundedRectangleRadius);
ToolStripLabeledNumericUpDown tslnudBlurRadius = new ToolStripLabeledNumericUpDown();
tslnudBlurRadius.LabeledNumericUpDownControl.Text = "Blur radius:";
tslnudBlurRadius.LabeledNumericUpDownControl.Minimum = 2;
tslnudBlurRadius.LabeledNumericUpDownControl.Maximum = 100;
tslnudBlurRadius.LabeledNumericUpDownControl.Value = config.ShapeBlurRadius;
tslnudBlurRadius.LabeledNumericUpDownControl.ValueChanged = (sender, e) =>
{
config.ShapeBlurRadius = (int)tslnudBlurRadius.LabeledNumericUpDownControl.Value;
UpdateCurrentShape();
};
cmsContextMenu.Items.Add(tslnudBlurRadius);
ToolStripLabeledNumericUpDown tslnudPixelSize = new ToolStripLabeledNumericUpDown();
tslnudPixelSize.LabeledNumericUpDownControl.Text = "Pixel size:";
tslnudPixelSize.LabeledNumericUpDownControl.Minimum = 2;
tslnudPixelSize.LabeledNumericUpDownControl.Maximum = 100;
tslnudPixelSize.LabeledNumericUpDownControl.Value = config.ShapeRoundedRectangleRadius;
tslnudPixelSize.LabeledNumericUpDownControl.ValueChanged = (sender, e) =>
{
config.ShapePixelateSize = (int)tslnudPixelSize.LabeledNumericUpDownControl.Value;
UpdateCurrentShape();
};
cmsContextMenu.Items.Add(tslnudPixelSize);
cmsContextMenu.Items.Add(new ToolStripSeparator());
ToolStripMenuItem tsmiFullscreenCapture = new ToolStripMenuItem("Capture fullscreen");
@ -396,49 +431,32 @@ private void surface_KeyDown(object sender, KeyEventArgs e)
case Keys.Menu:
IsSnapResizing = true;
break;
case Keys.NumPad1:
case Keys.NumPad0:
CurrentShapeType = ShapeType.RegionRectangle;
break;
case Keys.NumPad2:
CurrentShapeType = ShapeType.RegionRoundedRectangle;
break;
case Keys.NumPad3:
CurrentShapeType = ShapeType.RegionEllipse;
break;
case Keys.NumPad4:
case Keys.NumPad1:
CurrentShapeType = ShapeType.DrawingRectangle;
break;
case Keys.NumPad5:
case Keys.NumPad2:
CurrentShapeType = ShapeType.DrawingRoundedRectangle;
break;
case Keys.NumPad6:
case Keys.NumPad3:
CurrentShapeType = ShapeType.DrawingEllipse;
break;
case Keys.NumPad7:
case Keys.NumPad4:
CurrentShapeType = ShapeType.DrawingLine;
break;
case Keys.NumPad8:
case Keys.NumPad5:
CurrentShapeType = ShapeType.DrawingArrow;
break;
case Keys.Add:
switch (CurrentShapeType)
{
case ShapeType.RegionRoundedRectangle:
case ShapeType.DrawingRoundedRectangle:
config.ShapeRoundedRectangleRadius += RoundedRectangleRadiusIncrement;
UpdateShape();
break;
}
case Keys.NumPad6:
CurrentShapeType = ShapeType.DrawingBlur;
break;
case Keys.Subtract:
switch (CurrentShapeType)
{
case ShapeType.RegionRoundedRectangle:
case ShapeType.DrawingRoundedRectangle:
config.ShapeRoundedRectangleRadius = Math.Max(0, config.ShapeRoundedRectangleRadius - RoundedRectangleRadiusIncrement);
UpdateShape();
break;
}
case Keys.NumPad7:
CurrentShapeType = ShapeType.DrawingPixelate;
break;
case Keys.NumPad8:
CurrentShapeType = ShapeType.DrawingHighlight;
break;
}
}
@ -711,7 +729,7 @@ public BaseShape CreateRegionShape(Rectangle rect)
return shape;
}
private void UpdateShape()
private void UpdateCurrentShape()
{
UpdateShape(CurrentShape);
}
@ -741,7 +759,7 @@ private void UpdateShape(BaseShape shape)
else if (shape is PixelateDrawingShape)
{
PixelateDrawingShape pixelateDrawingShape = (PixelateDrawingShape)shape;
pixelateDrawingShape.PixelSize = config.ShapePixelSize;
pixelateDrawingShape.PixelSize = config.ShapePixelateSize;
}
}
}

View file

@ -42,28 +42,34 @@ public class BlurDrawingShape : BaseDrawingShape
public override void Draw(Graphics g)
{
using (Brush brush = new SolidBrush(Color.FromArgb(200, Color.Black)))
if (BlurRadius > 1)
{
g.FillRectangle(brush, Rectangle);
}
if (Rectangle.Width > 10 && Rectangle.Height > 10)
{
using (Font font = new Font("Verdana", 14))
using (StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
using (Brush brush = new SolidBrush(Color.FromArgb(200, Color.Black)))
{
g.DrawString("Blur", font, Brushes.White, Rectangle, sf);
g.FillRectangle(brush, Rectangle);
}
if (Rectangle.Width > 10 && Rectangle.Height > 10)
{
using (Font font = new Font("Verdana", 14))
using (StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
{
g.DrawString("Blur", font, Brushes.White, Rectangle, sf);
}
}
}
}
public override void DrawOutput(Graphics g, Bitmap bmp)
{
using (Bitmap croppedImage = ImageHelpers.CropBitmap(bmp, Rectangle))
if (BlurRadius > 1)
{
ImageHelpers.Blur(croppedImage, BlurRadius);
using (Bitmap croppedImage = ImageHelpers.CropBitmap(bmp, Rectangle))
{
ImageHelpers.Blur(croppedImage, BlurRadius);
g.DrawImage(croppedImage, Rectangle);
g.DrawImage(croppedImage, Rectangle);
}
}
}
}

View file

@ -42,27 +42,33 @@ public class PixelateDrawingShape : BaseDrawingShape
public override void Draw(Graphics g)
{
using (Brush brush = new SolidBrush(Color.FromArgb(200, Color.Black)))
if (PixelSize > 1)
{
g.FillRectangle(brush, Rectangle);
}
if (Rectangle.Width > 10 && Rectangle.Height > 10)
{
using (Font font = new Font("Verdana", 14))
using (StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
using (Brush brush = new SolidBrush(Color.FromArgb(200, Color.Black)))
{
g.DrawString("Pixelate", font, Brushes.White, Rectangle, sf);
g.FillRectangle(brush, Rectangle);
}
if (Rectangle.Width > 10 && Rectangle.Height > 10)
{
using (Font font = new Font("Verdana", 14))
using (StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
{
g.DrawString("Pixelate", font, Brushes.White, Rectangle, sf);
}
}
}
}
public override void DrawOutput(Graphics g, Bitmap bmp)
{
using (Bitmap croppedImage = ImageHelpers.CropBitmap(bmp, Rectangle))
using (Bitmap pixelatedImage = ImageHelpers.Pixelate(croppedImage, PixelSize))
if (PixelSize > 1)
{
g.DrawImage(pixelatedImage, Rectangle);
using (Bitmap croppedImage = ImageHelpers.CropBitmap(bmp, Rectangle))
using (Bitmap pixelatedImage = ImageHelpers.Pixelate(croppedImage, PixelSize))
{
g.DrawImage(pixelatedImage, Rectangle);
}
}
}
}

View file

@ -60,10 +60,10 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Enums.cs" />
<Compile Include="Forms\RectangleAnnotateForm.cs">
<Compile Include="Forms\RectangleRegionAnnotateForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\RectangleTransparentForm.cs">
<Compile Include="Forms\RectangleRegionTransparentForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\ScrollingCaptureForm.cs">
@ -103,7 +103,7 @@
<DependentUpon>FFmpegOptionsForm.cs</DependentUpon>
</Compile>
<Compile Include="Screencast\ScreencastOptions.cs" />
<Compile Include="Forms\RectangleLightForm.cs">
<Compile Include="Forms\RectangleRegionLightForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\SurfaceForm.cs">

View file

@ -102,9 +102,9 @@ public class SurfaceOptions
public Color ShapeBorderColor = Color.Red;
public int ShapeBorderSize = 2;
public Color ShapeFillColor = Color.FromArgb(0, 0, 0, 0);
public float ShapeRoundedRectangleRadius = 15;
public int ShapeRoundedRectangleRadius = 15;
public int ShapeBlurRadius = 15;
public int ShapePixelSize = 7;
public int ShapePixelateSize = 7;
public SurfaceOptions()
{

View file

@ -2172,7 +2172,7 @@ private void CaptureRectangleLight(TaskSettings taskSettings = null, bool autoHi
{
Image img = null;
using (RectangleLightForm rectangleLight = new RectangleLightForm())
using (RectangleRegionLightForm rectangleLight = new RectangleRegionLightForm())
{
if (rectangleLight.ShowDialog() == DialogResult.OK)
{
@ -2197,7 +2197,7 @@ private void CaptureRectangleTransparent(TaskSettings taskSettings = null, bool
{
Image img = null;
using (RectangleTransparentForm rectangleTransparent = new RectangleTransparentForm())
using (RectangleRegionTransparentForm rectangleTransparent = new RectangleRegionTransparentForm())
{
if (rectangleTransparent.ShowDialog() == DialogResult.OK)
{
@ -2235,13 +2235,13 @@ private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = tr
}
break;
case LastRegionCaptureType.Light:
if (!RectangleLightForm.LastSelectionRectangle0Based.IsEmpty)
if (!RectangleRegionLightForm.LastSelectionRectangle0Based.IsEmpty)
{
DoCapture(() =>
{
using (Image screenshot = Screenshot.CaptureFullscreen())
{
return ImageHelpers.CropImage(screenshot, RectangleLightForm.LastSelectionRectangle0Based);
return ImageHelpers.CropImage(screenshot, RectangleRegionLightForm.LastSelectionRectangle0Based);
}
}, CaptureType.LastRegion, taskSettings, autoHideForm);
}
@ -2251,13 +2251,13 @@ private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = tr
}
break;
case LastRegionCaptureType.Transparent:
if (!RectangleTransparentForm.LastSelectionRectangle0Based.IsEmpty)
if (!RectangleRegionTransparentForm.LastSelectionRectangle0Based.IsEmpty)
{
DoCapture(() =>
{
using (Image screenshot = Screenshot.CaptureFullscreen())
{
return ImageHelpers.CropImage(screenshot, RectangleTransparentForm.LastSelectionRectangle0Based);
return ImageHelpers.CropImage(screenshot, RectangleRegionTransparentForm.LastSelectionRectangle0Based);
}
}, CaptureType.LastRegion, taskSettings, autoHideForm);
}