我正在创建一个程序来保存图像每个像素的RGB颜色,但它会出现以下错误:
如果您正在使用集合,请确保将索引更少 而不是集合的大小。
我不知道程序中的错误在哪里。
这是我的代码:
(忽略部分:"if (altura >= largura)"
)。错误发生在"if (altura < largura)"
部分。 )
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog abrir = new OpenFileDialog
{
Title = @"Abrir Imagem", // Titulo da janela
FileName = @"Nome Arquivo JPG", // Texto que aparece no campo nome da janela
Filter = @"Arquivo JPEG (*.jpg)|*.jpg"
};
DialogResult Resultado = abrir.ShowDialog();
if (Resultado == DialogResult.OK)
{
Bitmap bmp = new Bitmap(abrir.FileName);
picFoto.Load(abrir.FileName);
picFoto.SizeMode = PictureBoxSizeMode.AutoSize;
int largura = this.picFoto.Width;
int altura = this.picFoto.Height;
picFoto.SizeMode = PictureBoxSizeMode.StretchImage;
// MessageBox.Show("Altura " + largura + " Largura " + altura); // ate aqui funfa
if (altura < largura)
{
int largura2 = 1; int altura2 = 1;
while (largura2 < largura)
{
//largura2++;
while (altura2 < altura )
{
altura2++;
//MessageBox.Show(" " + largura2 + "" + altura2);
Lista.Items.Add(" " + largura2 + "" + altura2);
int a = bmp.GetPixel(largura2, altura2).A;
int r = bmp.GetPixel(largura2, altura2).R;
int g = bmp.GetPixel(largura2, altura2).G;
int b = bmp.GetPixel(largura2, altura2).B;
lblCor.BackColor = Color.FromArgb(a, r, g, b);
lblNomeCor.Text = " Cor: A: " + a + " R: " + r + " G: " + g + " B: " + b;
label1.Text = "Largura: \n" + largura + " \nAltura: \n" + altura +"\nX: " + largura2 + " Y: " + altura2;
//Lista.Items.Add(lblNomeCor.Text);
}
altura2 = 1;
}
}
if (altura >= largura)
{
int largura2 = 1; int altura2 = 1;
while (altura2 <= altura - 1)
{
altura2++;
while (largura2 <= largura - 1)
{
largura2++;
int a = bmp.GetPixel(largura2, altura2).A;
int r = bmp.GetPixel(largura2, altura2).R;
int g = bmp.GetPixel(largura2, altura2).G;
int b = bmp.GetPixel(largura2, altura2).B;
lblCor.BackColor = Color.FromArgb(a, r, g, b);
lblNomeCor.Text = " Cor: A: " + a + " R: " + r + " G: " + g + " B: " + b;
label1.Text = "Largura: \n" + largura + " \nAltura: \n" + altura + "\nX: " + largura2 + " Y: " + altura2;
//Lista.Items.Add(lblNomeCor.Text);
}
}
}
}
}