画像ボックスを使用して2つの画像を比較しようとしていますが、問題が発生しました:選択した画像名を関数のパラメータとして文字列として渡すにはどうすればよいですか?C#でパラメータとしてファイルダイアログインスタンスを渡す方法
画像のパスと名前をstring name1
とstring name2
として保存しますが、パラメータとして渡すと問題が発生します。
以下は私のコードです。私が間違っている場所を教えてください。
private void pictureBox1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd1 = new OpenFileDialog();
ofd1.Title = "Select User Profile Image";
ofd1.Filter = "Image File(*.png;*.jpg;*.bmp;*.gif)|*.png;*.jpg;*.bmp;*.gif";
if (ofd1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(ofd1.FileName);
string name1 = ofd1.FileName;
}
}
private void button1_Click(object sender, EventArgs e)
{
Compare(name1,name2);
}
public void Compare(string bmp1, string bmp2, byte threshold = 3)
{
Bitmap firstBmp = (Bitmap)Image.FromFile(bmp1);
Bitmap secondBmp = (Bitmap)Image.FromFile(bmp2);
firstBmp.GetDifferenceImage(secondBmp, true);
string result = string.Format("Difference: {0:0.0} %", firstBmp.PercentageDifference(secondBmp, threshold) * 100);
}
に便利です「しかし、私は問題を抱えたとき、私パラメータとして渡す "あなたの問題の性質はどういうものですか? –
名前1と名前2(あなたのコードにname2フィールドはありません)は、button1_Click()でアクセスできません。それらをグローバルにしましょう。 – Jamaxack