using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
//
myself
using System.Collections.Specialized;
using System.Text;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
namespace haopai
![PictureBox 读取图片及绘画[亲测有效]__第16张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第16张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
///
<summary>
///
Form1 的摘要说明。
///
</summary>
public
class Form1 : System.Windows.Forms.Form
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
///
<summary>
///
必需的设计器变量。
///
</summary>
private System.ComponentModel.Container components =
null;
public Form1()
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
//
//
Windows 窗体设计器支持所必需的
//
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
InitializeComponent();
//
//
TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
///
<summary>
///
清理所有正在使用的资源。
///
</summary>
protected
override
void Dispose(
bool disposing )
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if( disposing )
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if (components !=
null)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
components.Dispose();
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
base.Dispose( disposing );
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
Windows 窗体设计器生成的代码
///
<summary>
///
应用程序的主入口点。
///
</summary>
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
[STAThread]
static
void Main()
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Application.Run(
new Form1());
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
private
void Form1_Load(
object sender, System.EventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
//
GrayByPixels();
//
灰度处理
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label r;
private System.Windows.Forms.TextBox valueBox;
private System.Windows.Forms.Button getbutton;
private System.Windows.Forms.TrackBar trackBar1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtStartX;
private System.Windows.Forms.TextBox txtStartY;
private System.Windows.Forms.TextBox txtEndX;
private System.Windows.Forms.TextBox txtEndY;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Button btn_SavePoint;
//
灰度值
protected
int nHuidu =
0;
public Bitmap bmpobj;
private Cursor inCursor;
//
鼠标样式
private Cursor MyCursor;
//
鼠标样式
private Point m_ptStart =
new Point(
0,
0);
private Point m_ptEnd =
new Point(
0,
0);
private
bool m_bMouseDown =
false;
//
读取图片
private
void getbutton_Click(
object sender, System.EventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
try
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
bmpobj=
null;
//
初始化为空
string path = Application.ExecutablePath.Substring(
0,Application.ExecutablePath.LastIndexOf(
"
\\
"))+
"
\\aa.jpg
";
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Image get_Image = Image.FromFile(path);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
pictureBox1.Image =get_Image;
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
GrayByPixels();
//
灰度处理
//
初始化trackBar1
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
trackBar1.Value = nHuidu;
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
catch(ArgumentException)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
MessageBox.Show(
"
There was an error.Check the path to the image file.
");
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
滚动条
private
void trackBar1_Scroll(
object sender, System.EventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
int r,g,b;
//
Bitmap memBmp = new Bitmap(pictureBox1.Image);
//
(pictureBox1.Width,pictureBox1.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
UnCodebase () ;
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Bitmap memBmp = bmpobj;
//
Image userDrawAreaImage = Bitmap memBmp
int nChang = trackBar1.Value - nHuidu;
for(
int x=
0; x<pictureBox1.Image.Width; x++)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
for(
int y=
0; y<pictureBox1.Image.Height; y++)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Color pixelColor = memBmp.GetPixel(x, y);
//
byte i = 0x01;
if(( (pixelColor.R + nChang) >=
0) && ((pixelColor.R + nChang) <=
250)) r = pixelColor.R + nChang;
else r = pixelColor.R;
if(( (pixelColor.G + nChang) >=
0) && ((pixelColor.G + nChang) <=
250)) g = pixelColor.G + nChang;
else g = pixelColor.G;
if(( (pixelColor.B + nChang) >=
0) && ((pixelColor.B + nChang) <=
250)) b = pixelColor.B + nChang;
else b = pixelColor.B;
//
Color newColor = Color.FromArgb(r,g ,b);
//
memBmp.SetPixel(x, y, newColor);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
memBmp.SetPixel(x, y, Color.FromArgb(r, g, b));
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
bmpobj = memBmp;
//
把图片传给全局变量
//
GrayByPixels();
//
Graphics memGp = Graphics.FromImage(memBmp);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
pictureBox1.Image = memBmp;
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
GrayByPixels();
//
灰度处理
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
valueBox.Text = nHuidu.ToString();
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
pictureBox1 按下鼠标
private
void pictureBox1_MouseDown(
object sender, System.Windows.Forms.MouseEventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
m_ptStart =
new Point(e.X, e.Y);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
txtStartX.Text = m_ptStart.X.ToString();
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
txtStartY.Text = m_ptStart.Y.ToString();
//
if (!m_bMouseDown)
//
{
//
m_ptEnd = new Point(e.X, e.Y);
//
txtEndX.Text = m_ptEnd.X.ToString();
//
txtEndY.Text = m_ptEnd.Y.ToString();
//
}
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
m_bMouseDown = !m_bMouseDown;
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
pictureBox1 移动鼠标
private
void pictureBox1_MouseMove(
object sender, System.Windows.Forms.MouseEventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
try
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if (!m_bMouseDown ==
true)
return;
//
判断是否按下 pictureBox1_MouseDown
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
m_ptEnd =
new Point(e.X, e.Y);
this.pictureBox1.Refresh();
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
//
m_ptEnd = new Point(e.X, e.Y);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
MyCursor =
new Cursor(
"
cross_m.cur
");
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Cursor.Current = MyCursor;
//
Rectangle rec = new Rectangle(Convert.ToInt32(txtStartX),Convert.ToInt32(txtStartY),Convert.ToInt32(txtEndX),Convert.ToInt32(txtEndY));
//
pictureBox1.Image.Size
//
Bitmap memBmp = bmpobj;
//
pictureBox1.Image = System.Drawing.Image.FromFile(selection.SubItems[1].Text);
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
显示"+"指针
else
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
inCursor =
new Cursor(
"
pen_rm.cur
");
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Cursor.Current = inCursor;
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
catch
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if (inCursor !=
null)
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
inCursor.Dispose();
if (MyCursor !=
null)
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
MyCursor.Dispose();
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
鼠标离开 pictureBox1
private
void pictureBox1_MouseLeave(
object sender, System.EventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if (inCursor !=
null)
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
inCursor.Dispose();
if (MyCursor !=
null)
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
MyCursor.Dispose();
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
pictureBox1 释放鼠标
private
void pictureBox1_MouseUp(
object sender, System.Windows.Forms.MouseEventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if (!m_bMouseDown ==
true)
return;
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
m_ptEnd =
new Point(e.X, e.Y);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
txtEndX.Text = m_ptEnd.X.ToString();
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
txtEndY.Text = m_ptEnd.Y.ToString();
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
m_bMouseDown = !m_bMouseDown;
//
//
Bitmap memBmp = new Bitmap(pictureBox1.Image);
//
Graphics myGraphics = Graphics.FromImage(pictureBox1.Image);
//
Pen blackPen = new Pen(Color.Black, 3);
//
Rectangle rec = new Rectangle(Convert.ToInt32(txtStartX),Convert.ToInt32(txtStartY),Convert.ToInt32(txtEndX),Convert.ToInt32(txtEndY));
//
myGraphics.DrawRectangle(blackPen, rec);
//
pictureBox1.Image = Image.FromStream(myGraphics);
//
myGraphics.Dispose();
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
pictureBox1 点击图片
private
void pictureBox1_Click(
object sender, System.EventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
pictureBox1 绘制图片
private
void pictureBox1_Paint(
object sender, System.Windows.Forms.PaintEventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if (m_ptStart.Equals(m_ptEnd))
return;
//
if(pictureBox1.Image == null || CurX == 0) return;
//
Pen blackPen = new Pen(Color.Black, 3);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
e.Graphics.DrawRectangle(System.Drawing.Pens.Yellow,m_ptStart.X,m_ptStart.Y,m_ptEnd.X - m_ptStart.X, m_ptEnd.Y - m_ptStart.Y);
//
this.pictureBox1.Refresh();
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
//
保存截取图片点
private
void btn_SavePoint_Click(
object sender, System.EventArgs e)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
/ xg
//
public
void UnCodebase ()
//
(Bitmap pic)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if(bmpobj ==
null)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
//
Bitmap memBmp = new Bitmap(pictureBox1.Image);
//
(pictureBox1.Width,pictureBox1.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
bmpobj =
new Bitmap (pictureBox1.Image);
//
(pic);
//
转换为Format32bppRgb
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
///
<summary>
///
根据RGB,计算灰度值
///
</summary>
///
<param name="posClr">
Color值
</param>
///
<returns>
灰度值,整型
</returns>
private
int GetGrayNumColor(System.Drawing.Color posClr)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
return (posClr.R *
19595 + posClr.G *
38469 + posClr.B *
7472)>>
16;
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
///
<summary>
///
灰度转换,逐点方式
///
</summary>
public
void GrayByPixels()
//
灰度处理
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
//
xg
//
int tmpValue =
0;
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
UnCodebase ();
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Bitmap memBmp = bmpobj;
for (
int i =
0; i < bmpobj.Height; i++)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
for (
int j =
0; j < bmpobj.Width; j++)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
//
int tmpValue = GetGrayNumColor(bmpobj.GetPixel(j, i));
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
tmpValue += GetGrayNumColor(bmpobj.GetPixel(j, i));
//
bmpobj.SetPixel(j, i, Color.FromArgb(tmpValue, tmpValue, tmpValue));
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
tmpValue = tmpValue/(bmpobj.Height * bmpobj.Width);
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
valueBox.Text = tmpValue.ToString();
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
nHuidu = tmpValue;
//
全局灰度
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
///
<summary>
///
去图形边框
///
</summary>
///
<param name="borderWidth"></param>
public
void ClearPicBorder(
int borderWidth)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
for (
int i =
0; i < bmpobj.Height; i++)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
for (
int j =
0; j < bmpobj.Width; j++)
![PictureBox 读取图片及绘画[亲测有效]__第17张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第17张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
{
if (i < borderWidth || j < borderWidth || j > bmpobj.Width -
1 - borderWidth || i > bmpobj.Height -
1 - borderWidth)
![PictureBox 读取图片及绘画[亲测有效]__第18张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第18张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
bmpobj.SetPixel(j, i, Color.FromArgb(
255,
255,
255));
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第19张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第19张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}
![PictureBox 读取图片及绘画[亲测有效]__第307张_编程好6博客 PictureBox 读取图片及绘画[亲测有效]_https://bianchenghao6.com/blog__第307张](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
}