Anonymní profil Lukáš – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Lukáš – Programujte.comAnonymní profil Lukáš – Programujte.com

 

Příspěvky odeslané z IP adresy 2a00:1028:83cc:4a26:6131:...–

Lukáš
Visual Basic › Problém - procentuální zmenš…
12. 5. 2013   #176116

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

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý