加载图像
//创建OpenFileDialog对象
OpenFileDialog openFileDialog = new OpenFileDialog();
//创建一个筛选器
openFileDialog.Filter = "jpeg文件|*.jpg";
//设置对话框标题
openFileDialog.Title = "打开图片:";
//启用帮助按钮
openFileDialog.ShowHelp = true;
//如果结果为打开,则选定文件
if (openFileDialog.ShowDialog()==DialogResult.OK)
{
curFileName = openFileDialog.FileName;
curBitmap = (Bitmap)Image.FromFile(curFileName);
Invalidate();
}
在窗体中设置一个button
在button里面的代码如下
if (curBitmap!=null)
{
Color curColor;
int ret;//定义灰度值变量
//二维图像数组循环
for (int i = 0; i < curBitmap.Width; i++)
{
for (int j = 0; j < curBitmap.Height; j++)
{
//获取该点像素的RGB值
curColor = curBitmap.GetPixel(i, j);
//利用公式计算灰度值
ret = (int)(curColor.R * 0.299 + curColor.G * 0.587 + curColor.B * 0.114);
//设置该点像素的灰度值R=G=B=ret
curBitmap.SetPixel(i, j, Color.FromArgb(ret, ret, ret));
}
}
Invalidate();
}
在paint事件中写如下代码:
Graphics graphics = e.Graphics;
if (curBitmap != null)
{
graphics.DrawImage(curBitmap, 160, 20, curBitmap.Width, curBitmap.Height);
}