mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 09:17:36 +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.Drawing2D;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ShareX.ScreenCaptureLib
|
||||
|
@ -1406,16 +1407,7 @@ private void PasteFromClipboard(bool insertMousePosition)
|
|||
{
|
||||
Image img = ClipboardHelpers.GetImage();
|
||||
|
||||
if (img != null)
|
||||
{
|
||||
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();
|
||||
}
|
||||
InsertImage(img, pos);
|
||||
}
|
||||
else if (Clipboard.ContainsText())
|
||||
{
|
||||
|
@ -1529,7 +1521,7 @@ private void LoadImageFile(string filePath)
|
|||
}
|
||||
}
|
||||
|
||||
private void InsertImage()
|
||||
private void InsertImageFile()
|
||||
{
|
||||
string filePath = ImageHelpers.OpenImageFileDialog(Form);
|
||||
|
||||
|
@ -1537,11 +1529,39 @@ private void InsertImage()
|
|||
{
|
||||
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)
|
||||
{
|
||||
CurrentTool = ShapeType.DrawingImage;
|
||||
ImageDrawingShape shape = (ImageDrawingShape)CreateShape(ShapeType.DrawingImage);
|
||||
Point pos = Form.ClientArea.Center();
|
||||
shape.Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
|
||||
shape.SetImage(img, true);
|
||||
shape.OnCreated();
|
||||
|
@ -1549,7 +1569,6 @@ private void InsertImage()
|
|||
SelectCurrentShape();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ChangeImageSize()
|
||||
{
|
||||
|
|
|
@ -640,15 +640,20 @@ internal void CreateToolbar()
|
|||
};
|
||||
tsddbImage.DropDownItems.Add(tsmiNewImage);
|
||||
|
||||
ToolStripMenuItem tsmiOpenImage = new ToolStripMenuItem("Open image...");
|
||||
ToolStripMenuItem tsmiOpenImage = new ToolStripMenuItem("Open image file...");
|
||||
tsmiOpenImage.Image = Resources.folder_open_image;
|
||||
tsmiOpenImage.Click += (sender, e) => OpenImageFile();
|
||||
tsddbImage.DropDownItems.Add(tsmiOpenImage);
|
||||
|
||||
ToolStripMenuItem tsmiInsertImage = new ToolStripMenuItem("Insert image...");
|
||||
tsmiInsertImage.Image = Resources.image__plus;
|
||||
tsmiInsertImage.Click += (sender, e) => InsertImage();
|
||||
tsddbImage.DropDownItems.Add(tsmiInsertImage);
|
||||
ToolStripMenuItem tsmiInsertImageFile = new ToolStripMenuItem("Insert image file...");
|
||||
tsmiInsertImageFile.Image = Resources.image__plus;
|
||||
tsmiInsertImageFile.Click += (sender, e) => InsertImageFile();
|
||||
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());
|
||||
|
||||
|
|
Loading…
Reference in a new issue