我正在尝试在定时器的tick函数中将位图图像添加到List<Image>
。计时器有一个100ms的刻度,并使用以下代码:
private void GifTimer_Tick(object sender, EventArgs e)
{
using (var bmp = new Bitmap(selection.Width, selection.Height, PixelFormat.Format32bppPArgb))
{
using (var graphics = Graphics.FromImage(bmp)) graphics.CopyFromScreen(selection.Left, selection.Top, 0, 0, bmp.Size);
images.Add(bmp); //Adds null values apparently.
}
}
我运行了一些断点调试,发现bmp
不为空,并且根据选择具有正确的宽度和高度。我在其他地方使用相同的代码用于其他目的,它按预期工作。但是当这个位图添加到我的列表中时,它会返回null。
我在这里遗漏了什么吗?列表在我的构造函数中初始化为new List<Image>();
。
答案 0 :(得分:0)
请勿使用using
自动处理您的位图:
var bmp = new Bitmap(selection.Width, selection.Height, PixelFormat.Format32bppPArgb);
using (var graphics = Graphics.FromImage(bmp))
graphics.CopyFromScreen(selection.Left, selection.Top, 0, 0, bmp.Size);
images.Add(bmp);