当前位置:编程学习 > C#/ASP.NET >>

vb.net中读入图片

本人只会.net,不会Flash之类的软件。
如题,在.net环境中编程,读入一组连续的图片(20张),使之像动画播放一样,就是往PictureBox中读照片,然后一张一张替换,达到动画的渐变效果。
我已经使用 x = new Time
           x.Interval = 1
           x.Enabled() = True
              .
              .
              .
           x.Enabled() = False 
而且时间间隔已经设成最小的“1”了,不过效果还是不明显。

这里还有一点说明,有两组图片(各20张),一组是深蓝背景的花(300Kb/张),另一组是无背景的花(700Kb/张),做的都是渐渐盛开的图片(1-20)。
无背景的图片按照“x.Interval = 1”,一张一张替换得很圆滑,一点都不卡,但是有背景图片在同样的设置下卡得很厉害,大家有没有知道是什么原因的呢? --------------------编程问答-------------------- 1.图片大小很大?可以通过图片处理软件处理小点
2.可以考虑一开始把所有图片先读进内存 --------------------编程问答-------------------- 把图片先读进内存应该是个好办法。那样提取应该会快一些吧 --------------------编程问答-------------------- 改一下,不要用图片框的载入方法,使用graphic.drawbitmap方法,把你的图片全转换成bitmap对象在画在图片框 --------------------编程问答-------------------- 谢谢以上各位的提议,我会试一试的。 --------------------编程问答-------------------- 以上各位的 建议中,我采用了读入内存的办法,不过还是效果不大。下边是代码:
   Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As    
                                      System.EventArgs) Handles PictureBox2.Click
        test = New Timer()
        test.Interval = 1
        test.Enabled = True
    End Sub
    Private Sub test_Tick(ByVal sender As Object, ByVal e As System.EventArgs) 
                               Handles test.Tick

        If ind < 26 And ind > 6 Then
            path_str = str + ind.ToString + ".jpg"
            Input = New System.IO.FileStream(path_str, IO.FileMode.Open)

            PictureBox2.Image = Image.FromStream(Input)
            Input.Close()
            ind += 1
        Else
            ind = 7
            test.Enabled = False
        End If

如果批量读入内存,然后再分别显示在PictyureBox里怎么做呢?大家给些提示吧。 --------------------编程问答-------------------- Dim dp As System.IO.DirectoryInfo
dp = New DirectoryInfo(图片路径)

  For Each d As FileInfo In dp.GetFiles

  Next

然后操作dp好像就可以了吧  
所有的图片都在这个文件中了。
你试试! --------------------编程问答-------------------- 先将图片读到内存中,再显示出来。

               Dim reader As SqlDataReader = Sqlcmd.ExecuteReader()
                If Not reader.HasRows Then
                    If Not pictureBox2.Image Is Nothing Then
                        pictureBox2.Image.Dispose()
                        pictureBox2.Image = Nothing
                    End If
                    reader.Close()
                    SqlConn.Close()
                    Return
                End If
                reader.Read()

                Dim bufPhoto As MemoryStream = Nothing
                Dim image As Image = Nothing

                bufPhoto = New MemoryStream(CType(reader(0), Byte()))
                image = image.FromStream(bufPhoto, True)
                pictureBox2.Image = image
                reader.Close()
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,