В настоящее время я пишу программу, которая создает цвета и выводит их в pictureBox. Я делаю это в цикле 3D-for, чтобы создать все цвета RGB. Все это происходит в фоновом режиме. Мой код выглядит следующим образом:ArgumentException при создании растровых изображений
private void ColorWorker_DoWork(object sender, DoWorkEventArgs e)
{
Color color;
String hex;
Bitmap image;
Invoke((MethodInvoker)delegate
{
progressBar1.Maximum = (255 * 255 * 255);
progressBar1.Value = 0;
});
for (int r = 0; r <= 255; r++)
{
for (int g = 0; g <= 255; g++)
{
for (int b = 0; b <= 255; b++)
{
hex = "#FF" + r.ToString("X2") + g.ToString("X2") + b.ToString("X2");
color = System.Drawing.ColorTranslator.FromHtml(hex);
image = new Bitmap((int)nudWidth.Value, (int)nudHeight.Value);
using (Graphics gfx = Graphics.FromImage(image))
using (SolidBrush brush = new SolidBrush(color))
{
gfx.FillRectangle(brush, 0, 0, image.Width, image.Height);
}
Invoke((MethodInvoker)delegate
{
pictureBox1.Image = image;
progressBar1.Value++;
label13.Text = progressBar1.Value + "/" + progressBar1.Maximum;
});
}
}
}
}
Я создаю растровые изображения размером 1920x1080. Но после примерно 220 созданных изображений я получаю An exception of type 'System.ArgumentException' occurred in System.Drawing.dll
. Это также происходит при использовании меньших размеров, но тогда требуется больше времени, чтобы прекратить работу. Есть ли ошибка в моем коде?
InnerException является NULL
An exception of type 'System.ArgumentException' occurred in System.Drawing.dll but was not handled in user code
Additional information: Invalid Parameter.
If there is a handler for this exception, the program may be safely continued.
Возможно ли, чтобы вы опубликовали полное исключение, включая сообщение, внутренние исключения и стекы? И, пожалуйста, укажите, на какой строке кода вашего примера возникает исключение. –
добавил немного вещей, надеюсь, что это достаточно –