背景:我要播放很多张图片,配上文字。
方法:我在form上设置了一个picturebox框,然后调用drawimage方法。代码如下
现象:我用两张图片循环播放做试验。遇到的问题是,肉眼基本看到第一张图片。
第2张图片是一闪而过
问题:请问要怎么处理? 在下一张图片开始播放之前,是否要清除第一张的资源?dispose?
谢谢。大家中秋快乐
程序1)
一个循环()
{
DrawPicandStr("要插入的字","播放的图片");
}
程序2)
public int DrawPicandStr(string StrWords, string StrPictures)
{
..........
pictureBox = form1.pictureBox2;
newImage = Image.FromFile(StrPictures);
g.DrawImage(newImage, ulCorner);
}
声明:
/*变量的生命是这样的*/
public Graphics g;
System.Windows.Forms.PictureBox pictureBox;
Font font;
PointF ulCorner;
public ImageM()
{
ulCorner = new PointF(0.0F, 0.0F);
//PointF pointF = new PointF(10, 10);
font = new Font("宋体", 15f);
}
方法:我在form上设置了一个picturebox框,然后调用drawimage方法。代码如下
现象:我用两张图片循环播放做试验。遇到的问题是,肉眼基本看到第一张图片。
第2张图片是一闪而过
问题:请问要怎么处理? 在下一张图片开始播放之前,是否要清除第一张的资源?dispose?
谢谢。大家中秋快乐
程序1)
一个循环()
{
DrawPicandStr("要插入的字","播放的图片");
}
程序2)
public int DrawPicandStr(string StrWords, string StrPictures)
{
..........
pictureBox = form1.pictureBox2;
newImage = Image.FromFile(StrPictures);
g.DrawImage(newImage, ulCorner);
}
声明:
/*变量的生命是这样的*/
public Graphics g;
System.Windows.Forms.PictureBox pictureBox;
Font font;
PointF ulCorner;
public ImageM()
{
ulCorner = new PointF(0.0F, 0.0F);
//PointF pointF = new PointF(10, 10);
font = new Font("宋体", 15f);
}
你换图的时候每次都要重新从文件中加载肯定会浪费很多的资源和时间。
newImage = Image.FromFile(StrPictures);
/// 图片跳动
/// </summary>
private void CheckStop()
{
while (true)
{
try
{
if (F_1140 == 1)
{
if (pictureBox1.Width == 140)
{
pictureBox1.Location = new Point(pictureBox1.Location.X - 5, pictureBox1.Location.Y - 5);
pictureBox1.Width = 150;
pictureBox1.Height = 150;
}
else
{
pictureBox1.Location = new Point(pictureBox1.Location.X + 5, pictureBox1.Location.Y + 5);
pictureBox1.Width = 140;
pictureBox1.Height = 140;
}
}
else
{
if (pictureBox1.Width == 140)
{
pictureBox1.Location = new Point(pictureBox1.Location.X - 5, pictureBox1.Location.Y - 5);
pictureBox1.Width = 150;
pictureBox1.Height = 150;
}
}
Thread.Sleep(200);
}
catch(Exception ex)
{
MessageBox.Show("错误代码001:" + ex.Message);
}
}
}
1. 用ImageList 加载所有的图片,
2. 显示时只显示1个图片 , 定时更换此图片对应ImageList的索引即可!