Microsoft Visual Studio
gif图片
打开Microsoft Visual Studio,新建一个windows窗体项目,在窗体上添加两个Button、一个FlowLayoutPanel、一个OpenFileDialog、一个saveFileDialog
在FlowLayoutPanel1内添加一个picturebox,并将其属性修改一下
其他控件不用修改
'添加代码'首先需要进入常规-声明事件: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
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