日期:2014-05-18  浏览次数:20724 次

内存太大了
我的界面上有很多的pic上面加载的是同一个图片。但是,我发现给每个图片加载之后内存占的太大了。有没有什么办法可以减少下内存的占用,因为没个pic都是引用同一个图片。

------解决方案--------------------
Image img=....
图片压缩大小
graghic g=;
g.DrawImage();

pic.Image=img2;
pic2.Image=img2;


------解决方案--------------------
即使都是同一个图片,但是显示在多个image上,都是要分别加载到内存的,你可以同上引用一个image,不过那样,他们 会互相影响的,应该不是你要的效果
------解决方案--------------------
所有pic指向同一Paint事件,在里面进行绘图操作
C# code
        public Form1()
        {
            InitializeComponent();
            pictureBox1.Paint += new PaintEventHandler(pictureBox_Paint);
            pictureBox2.Paint += new PaintEventHandler(pictureBox_Paint);
            pictureBox3.Paint += new PaintEventHandler(pictureBox_Paint);  
        }
        Image img = Image.FromFile(@"C:\Users\SaeWind\Desktop\123\1.png");
        void pictureBox_Paint(object sender, PaintEventArgs e)
        {
            PictureBox pic = (PictureBox)sender;
            Graphics g = e.Graphics;
            g.DrawImage(img, new Rectangle(0, 0, pic.Width, pic.Height));
        }

------解决方案--------------------
这样 pictureBox1.Image一直为null
------解决方案--------------------
新手,随便说下:能不能指向同一个栈区呢?