zoukankan      html  css  js  c++  java
  • Winform 实现图片轮播(解决Image.FromFile内存不足)

    前言

    最近项目中需要在winform中做一个类似于网页那种轮播的效果,这里做下记录。

    实现

    整体的实现思路如下:

    1. 读取图片文件夹。
    2. 建立一个集合存储Image对象。
    3. 定时器定时更换PictrueBox的显示图片
            private List<Image> ilst = new List<Image>();//全局image集合
            private int imageIndex = 0;//图片索引
            //读取配置文件中的文件夹路径
            private string Slideshow()
            {
                try
                {
                    XElement xe = XElement.Load("SettingsConfig.xml");
                    string result = xe.Element("imagePath").Value;
                    return result;
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog("文件夹读取失败", ex);//log4net记录
                    return null;
                }
            }
            //将读取的image对象添加到集合中
            private void Picture()
            {
                //指定图片类型
                string imgtype = "*.BMP|*.JPG|*.GIF|*.PNG";
                string[] ImageType = imgtype.Split('|');
                for (int i = 0; i < ImageType.Length; i++)
                {
                    string[] images = Directory.GetFiles(Slideshow(), ImageType[i]);
                    foreach (var item in images)
                    {
                        ilst.Add(Image.FromFile(item));
                    }
                }            
            }
            //添加一个定时器,图片轮播速度可以通过定时器的Interval属性控制
            private void tmrSlideshow_Tick(object sender, EventArgs e)
            {
                picBacckGround.Image = ilst[imageIndex];
                imageIndex++;
                if (imageIndex > ilst.Count - 1) imageIndex = 0;
            }
    
            //最后调用Picture方法就可以了 记得把定时器Enable属性设为true。
    

    注意:在测试过程中,出现了Image.FromFile()方法内存不足的错误,指定图片类型就好了。如上面Picture()方法,指定图片类型就可以解决内存不足了。

    作者:故人与猫

    由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。

    版权声明:本博客所有文章仅用于学习和交流目的,欢迎转载,转载请注明原文作者及出处。

  • 相关阅读:
    扫描线与悬线
    随机搜索与模拟退火
    树的直径相关
    分数规划及斜率优化
    数学-剩余系
    后缀数据结构
    AC自动机和KMP
    生命游戏和随机数之间某种不可言说的秘密
    转移了
    BZOJ 1710: [Usaco2007 Open]Cheappal 廉价回文
  • 原文地址:https://www.cnblogs.com/gurenyumao/p/14481497.html
Copyright © 2011-2022 走看看