用VB.net2008編寫多種圖片格式轉換順序。本站提示廣大學習愛好者:(用VB.net2008編寫多種圖片格式轉換順序)文章只能為提供參考,不一定能成為您想要的結果。以下是用VB.net2008編寫多種圖片格式轉換順序正文
Visual Studio 2008與Visual Studio 2005的差異並不是十分大,但是不得不說Visual Studio 2008的確要比之前的Visual Studio 2005愈加獸性化和適用化了,但是獨一的缺陷是Visual Studio2008需求配置比擬高的PC才干發揚出真正的效率。關於運用.net開發平台的人們來說,運用Visual Studio2008停止開發是更好的一種選擇,也是一種趨向。Visual Studio一切系列的產品都附帶了少量的控件,這些控件都擁有十分弱小的功用。本文將經過一個完好的順序實例來讓讀者理解到編寫一個根本的順序所需求用到的控件和界面的規劃等,希望這篇文章對VB.net初學者還是擁有一定經歷的編程人員會有所協助。
翻開 Visual Studio 2008在文件 (File) 菜單上,單擊新建項目 (New Project)。 在新建項目 (New Project) 對話框的模板 (Templates) 窗格中,單擊 Windows 使用順序(Windows Application)。單擊確定 (OK)如圖1。
圖1
選擇Form1窗體,在Form1窗體中添加4個Label控件,屬性設置辨別如下
Label1 屬性值:Text 目的源格式: Label2 屬性值:Text 您需求轉換的格式: Label3 屬性值:Text 圖片文件夾 Label4 屬性值:Text 轉換後保管到
添加了Label控件後,我們還需求在窗體中添加2個ComboBox控件。留意兩個ComboBox我們都用默許稱號(ComboBox1,ComboBox2)辨別對應Label1(目的源格式:)和Label2(您需求轉換的格式:)如圖2
圖 2
持續在Form1窗體中添加兩個Textbox、三個Button、一個GroupBox1控件。屬性設置辨別如下:
Textbox1 屬性值:Name: PictureFolder Textbox2 屬性值:Name: NeedSaveFolder Button1 屬性值:Name: SelectImage 屬性值:Textbox 選擇 Button2 屬性值:Name: SelectSave 屬性值:Textbox 選擇 Button3 屬性值:Name: SelectConvert 屬性值:Textbox 轉換 GroupBox1 屬性值:Textbox 文件夾選擇格式
,我們需求把一些控件挪動到GroupBox1控件中,這樣可以更好地去停止管理。適外地去調整控件的地位如圖3
圖3
最後一步我們需求放入輸入後果的文原本提示用戶曾經完成。需求在Form1中添加一個GroupBox2控件、一個Listbox控件即可。相關屬性設置如下:
GroupBox2 屬性Textbox: 轉換後的後果 Listbox 屬性Name: Result
好了根本上界面的任務曾經完成了,後果如圖4
圖 4
界面任務根本曾經完成了,但是我們還沒有輸出任何代碼如今的順序是空的。接上去我們需求輸出代碼。雙擊Form1窗體進入代碼編輯器。
首先需求進入慣例-聲明事情:
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO
Public Class Form1
Private origGS, destGS As String '這裡包括源格式與目的格式
Private fileList() As String '列出圖片
Private filePath As String '目的的地位
Private filejs As Integer '計數器
Private fileFormat As ImageFormat '目的的一種格式
Private Function getName(ByVal ftName As String) As String
Dim fileGETName As String = ftName.Substring(ftName.LastIndexOf("") + 1)
Dim returnJG As String = fileGETName.Substring(0, fileGETName.LastIndexOf("."))
Return returnJG
End Function
進入ComboBox1_SelectedIndexChanged事情中
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Me.origGS = Me.ComboBox1.SelectedItem
End Sub
進入ComboBox2_SelectedIndexChanged事情中
Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
Me.destGS = Me.ComboBox2.SelectedItem
Select Case Me.destGS.ToUpper
Case "BMP" : fileFormat = ImageFormat.Bmp
Case "EMF" : fileFormat = ImageFormat.Emf
Case "GIF" : fileFormat = ImageFormat.Gif
Case "JPG" : fileFormat = ImageFormat.Jpeg
Case "PNG" : fileFormat = ImageFormat.Png
End Select
End Sub
進入SelectImage_Click事情中
Private Sub SelectImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SelectImage.Click
If origGS = String.Empty Then
MessageBox.Show("請先選擇圖片源格式!", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.ComboBox1.Focus()
Exit Sub
End If
Dim dg As New OpenFileDialog
With dg
.Title = "選擇圖片"
.Filter = String.Format("一切 {0} 圖片|*." & origGS, origGS)
.RestoreDirectory = True
.ValidateNames = True
.InitialDirectory = System.Environment.SpecialFolder.MyPictures
.Multiselect = True
.CheckFileExists = True
.CheckPathExists = True
End With
If dg.ShowDialog <> Windows.Forms.DialogResult.OK Then
Exit Sub
End If
fileList = dg.FileNames
Me.PictureFolder.Text = IO.Path.GetDirectoryName(fileList(0))
End Sub
進入SelectSave_Click事情中
Private Sub SelectSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SelectSave.Click
If destGS = String.Empty Then
MessageBox.Show("抱歉,需求先選擇圖片目的格式", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.ComboBox2.Focus()
Exit Sub
End If
Dim dg As New FolderBrowserDialog
dg.Description = "將轉換後的圖片保管到您所需求的地位:"
dg.ShowDialog()
Me.filePath = dg.SelectedPath
Me.NeedSaveFolder.Text = Me.filePath
End Sub
進入Button3_Click事情中
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Result.Items.Clear()
'判別用戶能否曾經選擇相應的目錄,恣意一個為空,則不能轉換
If Me.PictureFolder.Text <> String.Empty And _
Me.NeedSaveFolder.Text <> String.Empty Then
'源格式和目的格式能否相反
If Me.destGS = Me.origGS Then
MessageBox.Show("抱歉,目的格式不能與源格式相反", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
'開端轉換
Dim saveGssName As String = String.Empty '保管為新的文件名
For Each file As String In fileList
Try
Dim liTem As Image = Image.FromFile(file)
saveGssName = String.Format("{0}{1}.{2}", Me.filePath, getName(file), Me.destGS)
'開端轉換
liTem.Save(saveGssName, fileFormat)
filejs += 1
'記載轉換信息
Result.Items.Add(String.Format("曾經成功轉換了 {0}!", saveGssName))
Catch ex As FileNotFoundException
Result.Items.Add(String.Format("曾經轉換 {0} 失敗! 緣由: 源文件錯誤", saveGssName))
Catch ex As Exception
Result.Items.Add(String.Format("曾經轉換 {0} 失敗! 緣由: {1}!", saveGssName, ex.ToString))
End Try
Next
Dim Msg As String = String.Format("轉換曾經完成!", fileList.Length)
MessageBox.Show(Msg, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
Result.Items.Add(String.Empty)
Result.Items.Add(String.Format("一共成功轉換了 {0} 個圖片! ", Me.filejs.ToString))
Me.filejs = 0 '在這裡計數器需求清零
Exit Sub
Else
Exit Sub
End If
End Sub
圖5
選擇<編輯項> 圖6
圖 6
然後輸出:
BMP
EMF
GIF
JPG
PNG
ComboBox2,異樣依照以上步驟輸出數據項,輸出以下即可
BMP
EMF
GIF
JPG
PNG
好了如今我們運轉順序測試一下吧,測試如圖7
圖 7
測試後果如圖8
好了順序運轉成功,測試曾經完成。可以說這個順序相當的方便,可以恣意的去轉換多種圖片的格式。當然有興味的冤家還可以在順序中添加更多的功用,編寫一個更為弱小的多種圖片轉換順序。