mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-03 10:46:57 +13:00
fixed #3039: Added "Insert image from screen" button to editor image menu
This commit is contained in:
parent
eaad524a89
commit
cc3a22465d
2 changed files with 51 additions and 27 deletions
|
@ -29,6 +29,7 @@ You should have received a copy of the GNU General Public License
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace ShareX.ScreenCaptureLib
|
namespace ShareX.ScreenCaptureLib
|
||||||
|
@ -1406,16 +1407,7 @@ private void PasteFromClipboard(bool insertMousePosition)
|
||||||
{
|
{
|
||||||
Image img = ClipboardHelpers.GetImage();
|
Image img = ClipboardHelpers.GetImage();
|
||||||
|
|
||||||
if (img != null)
|
InsertImage(img, pos);
|
||||||
{
|
|
||||||
CurrentTool = ShapeType.DrawingImage;
|
|
||||||
ImageDrawingShape shape = (ImageDrawingShape)CreateShape(ShapeType.DrawingImage);
|
|
||||||
shape.Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
|
|
||||||
shape.SetImage(img, true);
|
|
||||||
shape.OnCreated();
|
|
||||||
AddShape(shape);
|
|
||||||
SelectCurrentShape();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (Clipboard.ContainsText())
|
else if (Clipboard.ContainsText())
|
||||||
{
|
{
|
||||||
|
@ -1529,7 +1521,7 @@ private void LoadImageFile(string filePath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InsertImage()
|
private void InsertImageFile()
|
||||||
{
|
{
|
||||||
string filePath = ImageHelpers.OpenImageFileDialog(Form);
|
string filePath = ImageHelpers.OpenImageFileDialog(Form);
|
||||||
|
|
||||||
|
@ -1537,11 +1529,39 @@ private void InsertImage()
|
||||||
{
|
{
|
||||||
Image img = ImageHelpers.LoadImage(filePath);
|
Image img = ImageHelpers.LoadImage(filePath);
|
||||||
|
|
||||||
|
InsertImage(img, Form.ClientArea.Center());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InsertImageFromScreen()
|
||||||
|
{
|
||||||
|
Image img;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Form.Pause();
|
||||||
|
Form.Hide();
|
||||||
|
menuForm.Hide();
|
||||||
|
Thread.Sleep(250);
|
||||||
|
|
||||||
|
img = RegionCaptureTasks.GetRegionImage(Options);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
Form.Show();
|
||||||
|
menuForm.Show();
|
||||||
|
Form.Resume();
|
||||||
|
}
|
||||||
|
|
||||||
|
InsertImage(img, Form.ClientArea.Center());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InsertImage(Image img, Point pos)
|
||||||
|
{
|
||||||
if (img != null)
|
if (img != null)
|
||||||
{
|
{
|
||||||
CurrentTool = ShapeType.DrawingImage;
|
CurrentTool = ShapeType.DrawingImage;
|
||||||
ImageDrawingShape shape = (ImageDrawingShape)CreateShape(ShapeType.DrawingImage);
|
ImageDrawingShape shape = (ImageDrawingShape)CreateShape(ShapeType.DrawingImage);
|
||||||
Point pos = Form.ClientArea.Center();
|
|
||||||
shape.Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
|
shape.Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
|
||||||
shape.SetImage(img, true);
|
shape.SetImage(img, true);
|
||||||
shape.OnCreated();
|
shape.OnCreated();
|
||||||
|
@ -1549,7 +1569,6 @@ private void InsertImage()
|
||||||
SelectCurrentShape();
|
SelectCurrentShape();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private void ChangeImageSize()
|
private void ChangeImageSize()
|
||||||
{
|
{
|
||||||
|
|
|
@ -640,15 +640,20 @@ internal void CreateToolbar()
|
||||||
};
|
};
|
||||||
tsddbImage.DropDownItems.Add(tsmiNewImage);
|
tsddbImage.DropDownItems.Add(tsmiNewImage);
|
||||||
|
|
||||||
ToolStripMenuItem tsmiOpenImage = new ToolStripMenuItem("Open image...");
|
ToolStripMenuItem tsmiOpenImage = new ToolStripMenuItem("Open image file...");
|
||||||
tsmiOpenImage.Image = Resources.folder_open_image;
|
tsmiOpenImage.Image = Resources.folder_open_image;
|
||||||
tsmiOpenImage.Click += (sender, e) => OpenImageFile();
|
tsmiOpenImage.Click += (sender, e) => OpenImageFile();
|
||||||
tsddbImage.DropDownItems.Add(tsmiOpenImage);
|
tsddbImage.DropDownItems.Add(tsmiOpenImage);
|
||||||
|
|
||||||
ToolStripMenuItem tsmiInsertImage = new ToolStripMenuItem("Insert image...");
|
ToolStripMenuItem tsmiInsertImageFile = new ToolStripMenuItem("Insert image file...");
|
||||||
tsmiInsertImage.Image = Resources.image__plus;
|
tsmiInsertImageFile.Image = Resources.image__plus;
|
||||||
tsmiInsertImage.Click += (sender, e) => InsertImage();
|
tsmiInsertImageFile.Click += (sender, e) => InsertImageFile();
|
||||||
tsddbImage.DropDownItems.Add(tsmiInsertImage);
|
tsddbImage.DropDownItems.Add(tsmiInsertImageFile);
|
||||||
|
|
||||||
|
ToolStripMenuItem tsmiInsertImageFromScreen = new ToolStripMenuItem("Insert image from screen...");
|
||||||
|
tsmiInsertImageFromScreen.Image = Resources.camera;
|
||||||
|
tsmiInsertImageFromScreen.Click += (sender, e) => InsertImageFromScreen();
|
||||||
|
tsddbImage.DropDownItems.Add(tsmiInsertImageFromScreen);
|
||||||
|
|
||||||
tsddbImage.DropDownItems.Add(new ToolStripSeparator());
|
tsddbImage.DropDownItems.Add(new ToolStripSeparator());
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue