多语言展示
当前在线:1502今日阅读:78今日分享:13

vb.net分解gif图片

vb.net分解gif图片源码
工具/原料
1

Microsoft Visual Studio

2

gif图片

方法/步骤
1

打开Microsoft Visual Studio,新建一个windows窗体项目,在窗体上添加两个Button、一个FlowLayoutPanel、一个OpenFileDialog、一个saveFileDialog

2

在FlowLayoutPanel1内添加一个picturebox,并将其属性修改一下

3

其他控件不用修改

4

'添加代码'首先需要进入常规-声明事件:Imports System.Drawing.ImagingPublic Class Form1   Dim bmp1 As Bitmap    Dim img1 As Imaging.FrameDimension    Dim bmp2() As Bitmap    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click        '打开gif图片        OpenFileDialog1.Title = '打开'        OpenFileDialog1.Filter = 'gif File (*.gif)|*gif'        OpenFileDialog1.FileName = ''        OpenFileDialog1.ShowDialog()        If OpenFileDialog1.FileName <> '' Then            FlowLayoutPanel1.Controls.Clear()            PictureBox00.ImageLocation = OpenFileDialog1.FileName            bmp1 = New Bitmap(OpenFileDialog1.FileName)            '拆分gif图片            img1 = New Imaging.FrameDimension(bmp1.FrameDimensionsList(0))            ReDim bmp2(bmp1.GetFrameCount(img1) - 1)            For i As Integer = 0 To bmp2.Count - 1                bmp1.SelectActiveFrame(img1, i)                bmp2(i) = New Bitmap(bmp1)            Next            '动态添加picturebox到FlowLayoutPanel1中,并将拆分后的图片载入picturebox            For i As Integer = 0 To bmp2.Count - 1                Dim pic As New PictureBox                pic.Name = 'PictureBox' & i                pic.Image = bmp2(i)                pic.Width = PictureBox00.Width                pic.Height = PictureBox00.Height                pic.SizeMode = PictureBoxSizeMode.Zoom                FlowLayoutPanel1.Controls.Add(pic)            Next        End If    End Sub

5

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click        '保存拆分后的图片        SaveFileDialog1.Title = '保存'        SaveFileDialog1.Filter = 'bmp File (*.bmp)|*.bmp|jpg File (*.jpg)|*.jpg'        Dim str As String = Microsoft.VisualBasic.Left(OpenFileDialog1.SafeFileName, Len(OpenFileDialog1.SafeFileName) - 4)        SaveFileDialog1.FileName = str        SaveFileDialog1.ShowDialog()        If SaveFileDialog1.FileName <> '' Then            If SaveFileDialog1.FilterIndex = 1 Then                For i As Integer = 0 To bmp2.Count - 1                    bmp2(i).Save(Microsoft.VisualBasic.Left(SaveFileDialog1.FileName, Len(SaveFileDialog1.FileName) - 4) & '-' & i & '.bmp', ImageFormat.Bmp)                Next            ElseIf SaveFileDialog1.FilterIndex = 2 Then                For i As Integer = 0 To bmp2.Count - 1                    bmp2(i).Save(Microsoft.VisualBasic.Left(SaveFileDialog1.FileName, Len(SaveFileDialog1.FileName) - 4) & '-' & i & '.jpg', ImageFormat.Jpeg)                Next            End If        End If    End SubEnd Class

推荐信息