zdravím , tvořím image resizer - zmenšovač obrázků. povedlo se mi ho zatím udělat tak, že se načtou obrázky -> klikne se na "Resize" , otevře se nový Form , v něm zvolit úložiště (SelectFolderDialog) , pak napsat ručně výšku, šířku a potvrdit. Rád bych ale dodělal možnost napsat do jednoduchého dalšího TextBoxu procenta (prostě napsat číslo) a on by to zmenšil v tomto poměru (například napíšu 20 a on zmenší původní načtené obrázky jejich šířku/výšku na 20%) .
Kód na zmenšení obrázku tak jak to mám teď bez toho je zhruba takhle - viz. dole (RadioButtony jsou tam na PŘEPÍNÁNÍ volby Zmenšit zadáním šířka/výška NEBO Zmenšit zadáním procenta .
Problém je , že nevím co doplnit v druhé části (IF RADIOBUTTON2.CHECKED = TRUE (= když uživatel zvolí možnost resizovat obrázek procentuálně)) , aby to bralo šířku / výšku PŮVODNÍHO obrázku ( ty jsou načteny jako jednotlivé ITEMS v ListView ve Form1) , kterou bych následně násobil (prc)/100 (= přepočet na procenta) . Mám deklarovano PRC as Integer a pak PRC = txprocent.Text (= textbox s uživatelem zadanou hodnotou) .
Jde o maturitní program = MOC prosím o pomoc !!!!
ht = Me.txheight.Text
wt = Me.txwidth.Text
prc = Me.txprocent.Text
Me.Hide()
loader.Show()
loader.ProgressBar1.Maximum = Form1.ListView1.Items.Count
Dim i As Integer = 1
For Each item In Form1.ListView1.Items
Try
If RadioButton1.Checked = True Then
loader.ProgressBar1.Value = i
Dim bmp As Bitmap = New Bitmap(wt, ht)
Using g As Graphics = Graphics.FromImage(bmp)
g.DrawImage(Image.FromFile(item.Text), 0, 0, bmp.Width, bmp.Height)
End Using
Dim filename As String = FileIO.FileSystem.GetFileInfo(item.Text).Name
Dim ext As String = FileIO.FileSystem.GetFileInfo(item.Text).Extension
Dim fullfilename As String = Me.txfolder.Text & "\" & filename
If LCase(ext) = ".jpg" Or LCase(ext) = ".jpeg" Then
bmp.Save(fullfilename, System.Drawing.Imaging.ImageFormat.Jpeg)
ElseIf LCase(ext) = ".png" Then
bmp.Save(fullfilename, System.Drawing.Imaging.ImageFormat.Png)
ElseIf LCase(ext) = ".gif" Then
bmp.Save(fullfilename, System.Drawing.Imaging.ImageFormat.Gif)
ElseIf LCase(ext) = ".bmp" Then
bmp.Save(fullfilename, System.Drawing.Imaging.ImageFormat.Bmp)
End If
'MsgBox(FileIO.FileSystem.GetFileInfo(item.Text).Extension)
loader.lblcontent.Text = item.Text
loader.lblcontent.Refresh()
loader.lblstatus.Text = "Resizing " & i & " of " & Form1.ListView1.Items.Count
loader.lblstatus.Refresh()
item.SubItems(3).Text = "Resized"
ElseIf RadioButton2.Checked = True Then
loader.ProgressBar1.Value = i
Dim bmp As Bitmap = New Bitmap
Using g As Graphics = Graphics.FromImage(bmp)
g.DrawImage(Image.FromFile(item.Text), 0, 0, bmp.Width, bmp.Height)
End Using
Dim filename As String = FileIO.FileSystem.GetFileInfo(item.Text).Name
Dim ext As String = FileIO.FileSystem.GetFileInfo(item.Text).Extension
Dim fullfilename As String = Me.txfolder.Text & "\" & filename
If LCase(ext) = ".jpg" Or LCase(ext) = ".jpeg" Then
bmp.Save(fullfilename, System.Drawing.Imaging.ImageFormat.Jpeg)
ElseIf LCase(ext) = ".png" Then
bmp.Save(fullfilename, System.Drawing.Imaging.ImageFormat.Png)
ElseIf LCase(ext) = ".gif" Then
bmp.Save(fullfilename, System.Drawing.Imaging.ImageFormat.Gif)
ElseIf LCase(ext) = ".bmp" Then
bmp.Save(fullfilename, System.Drawing.Imaging.ImageFormat.Bmp)
End If
'MsgBox(FileIO.FileSystem.GetFileInfo(item.Text).Extension)
loader.lblcontent.Text = item.Text
loader.lblcontent.Refresh()
loader.lblstatus.Text = "Resizing " & i & " of " & Form1.ListView1.Items.Count
loader.lblstatus.Refresh()
item.SubItems(3).Text = "Resized"
End If