public partial class GetColMean : Form
{
public GetColMean(string text)
{
InitializeComponent();
}
List<PointD> ColAvePointList = new List<PointD>();//列均值列表
public static ushort StartData = 1; //默认起始数据
public static ushort StopData = 1; //默认结束数据
public static ushort DataStep = 1; //默认数据增长步长初始值
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath);//读入配置文件
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string value, string filePath); //写入配置文件
// //打印行均值
private void 打印列均值Tool_Click(object sender, EventArgs e)
{
if (ImgInf.TempImg == null)
{
MessageBox.Show("未导入图片!");
return;
}
if (ImgInf.TempImg.Data == null)
{
MessageBox.Show("未导入图片!");
return;
}
if (ImgInf.TempImg.Data.Length != ImgInf.TempImg.Width * ImgInf.TempImg.Height)
{
MessageBox.Show("图像尺寸错误!");
return;
}
if ((StartData >= 0 && StartData <= ImgInf.TempImg.Width) && (StopData >= 0 && StopData <= ImgInf.TempImg.Width)) //输入的数据必须在图片尺寸内
{
ColAvePointList = ImgInf.TempImg.GetColAvePoint1("RAW", DataStep, StartData, StopData);
if (ColAvePointList == null)
{
return;
}
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "(*.csv)|*.csv|所有文件|*.*";
sfd.InitialDirectory = Form1.InitPath;
sfd.FilterIndex = 1;
sfd.FileName = "ColPoint";//设置默认文件名
sfd.AddExtension = true;//设置自动在文件名中添加扩展名
if (sfd.ShowDialog() == DialogResult.OK)
{
ImgInf.print_point(ColAvePointList, sfd.FileName);
MessageBox.Show("打印完成");
}
}
else
{
MessageBox.Show("输入数据超出图片尺寸!");
return;
}
}
//起始数据修改响应
private void StartData_TextChanged(object sender, EventArgs e)
{
if (StartDataChangeBox.Text == "")
{
return;
}
try
{
StartData = (ushort)Convert.ToInt32(StartDataChangeBox.Text);
}
catch (Exception)
{
StartDataChangeBox.Text = StartDataChangeBox.ToString();
}
SetValue("ColPrint", "StartValue", this.StartDataChangeBox.Text.ToString());
}
//终止数据修改响应
private void StopData_TextChanged(object sender, EventArgs e)
{
if (StopDataChangeBox.Text == "")
{
return;
}
try
{
StopData = (ushort)Convert.ToInt32(StopDataChangeBox.Text);
}
catch (Exception)
{
StopDataChangeBox.Text = StopDataChangeBox.ToString();
}
SetValue("ColPrint", "StopValue", this.StopDataChangeBox.Text.ToString());
}
//数据步长修改响应
private void DataStep_TextChanged(object sender, EventArgs e)
{
if (DataStepChangeBox.Text == "")
{
return;
}
try
{
DataStep = (ushort)Convert.ToInt32(DataStepChangeBox.Text);
}
catch (Exception)
{
DataStepChangeBox.Text = DataStepChangeBox.ToString();
}
SetValue("ColPrint", "StepValue", this.DataStepChangeBox.Text.ToString());
}
//读取配置文件的数据
public static string GetValue(string section, string key)
{
string strPath = "./SizeConfig.ini"; //相对路径
if (File.Exists(strPath)) //检查是否有配置文件,并且配置文件内是否有相关数据。
{
StringBuilder sb = new StringBuilder(255);
GetPrivateProfileString(section, key, "配置文件不存在,读取未成功!", sb, 255, strPath);
return sb.ToString();
}
else
{
return string.Empty;
}
}
/*写配置文件*/
public static void SetValue(string section, string key, string value)
{
string strPath = "./SizeConfig.ini"; //相对路径,
WritePrivateProfileString(section, key, value, strPath);
}
//响应获取配置文件里面的数据
private void GetColMean_Load(object sender, EventArgs e)
{
StartDataChangeBox.Text = GetValue("ColPrint", "StartValue");
StopDataChangeBox.Text = GetValue("ColPrint", "StopValue");
DataStepChangeBox.Text = GetValue("ColPrint", "StepValue");
}
}
10-14