Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    [VB.NET]Ridimensionare jpg è sua qualità

    ho un problema nel riuscire a ridurre il peso di una img, per ridimensionare eseguo:
    codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            
            Dim img As Bitmap = New Bitmap(FileListBox1.Path + "/" + FileListBox1.FileName)
            img = img.GetThumbnailImage(730, 450, Nothing, Nothing)
            img.Save(Application.StartupPath & "\" + FileListBox1.FileName)
    
        End Sub
    ma mi ritrovo l'img più pesante del dovuto?
    praticamente se converto una img.jpg che ha il peso di 40kb mi ritrovo un peso di circa 600kb?? anche se le misure sono corrette

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Se non indichi il formato, viene generato comunque un file BMP, ovviamente piu' pesante ...

    img.Save(Application.StartupPath & "\" + FileListBox1.FileName, Imaging.ImageFormat.Jpeg)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da oregon
    Se non indichi il formato, viene generato comunque un file BMP, ovviamente piu' pesante ...

    img.Save(Application.StartupPath & "\" + FileListBox1.FileName, Imaging.ImageFormat.Jpeg)
    ok....

  4. #4
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    allora...
    il problema adesso è che si salva è ridimensiona ma con una qualità pessima, come posso miglioare la qualità?
    esempio con nero converto un'img iniziale da 2,89 MB con dimensione in pixel X :2848 y:2136
    a
    x:730 y 430
    è la ritrovo con un peso di 73,8kb

    ma se eseguo il codice sopra il peso è di 23,4kb con qualità pessima.

  5. #5
    Puoi regolare la qualità del jpg salvato. guarda qua

    ps il codice è per C#, ma è analogo per vb.net

    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  6. #6
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da chipdb
    Puoi regolare la qualità del jpg salvato. guarda qua

    ps il codice è per C#, ma è analogo per vb.net

    ciao,
    ho dato un'occhiata, ma incontro difficoltà!!
    questa dovrebbe essere la conversione:
    in rosso mi dà
    Codice PHP:
    Errore Impossibile fare riferimento a un membro di istanza di una classe all'interno di un metodo condiviso o di un inizializzatore di membri condivisi senza un'istanza esplicita della classeC:\Documents and Settings\Pino\Impostazioni locali\Dati applicazioni\Temporary Projects\WindowsApplication1\Form1.vb 20    37 WindowsApplication1 
    codice:
    Imports System.Drawing.Imaging
    Imports System.Drawing
    Imports System.Drawing.Image
    Public Class Form1
        Private Function GetEncoderInfo(ByVal mimeType As String) As ImageCodecInfo
            Dim j As Integer
            Dim encoders As ImageCodecInfo()
            encoders = ImageCodecInfo.GetImageEncoders()
            For j = 0 To encoders.Length - 1
                If encoders(j).MimeType = mimeType Then
                    Return encoders(j)
                End If
            Next
            Return Nothing
        End Function
    
        Public Shared Sub SaveJPG(ByVal image As Image, ByVal fileName As String, ByVal compression As Long)
            Dim eps As New EncoderParameters(1)
            eps.Param(0) = New EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 75)
            Dim ici As ImageCodecInfo = GetEncoderInfo ("image/jpeg")
            image.Save(fileName, ici, eps)
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
        End Sub
    End Class

  7. #7
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    ok,
    riporto il codice, magari a qualcuno potrebbe interessare!!:
    codice:
    Imports System.Drawing.Imaging.EncoderParameters
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            With ComboBox1
                For i As Long = 0 To 100
                    ComboBox1.Items.Add(i.ToString("00"))
                Next
            End With
            ComboBox1.SelectedIndex = 50
        End Sub
    
        Private Function GetEncoder(ByVal format As Imaging.ImageFormat) As Imaging.ImageCodecInfo
    
            Dim codecs As Imaging.ImageCodecInfo() = Imaging.ImageCodecInfo.GetImageDecoders()
    
            Dim codec As Imaging.ImageCodecInfo
            For Each codec In codecs
                If codec.FormatID = format.Guid Then
                    Return codec
                End If
            Next codec
            Return Nothing
    
        End Function
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim img As Bitmap = New Bitmap(FileListBox1.Path + "\" + FileListBox1.FileName)
            img = img.GetThumbnailImage(730, 450, Nothing, Nothing)
    
            Dim valore As Int32 = ComboBox1.Text
    
            Dim bmp1 As New Bitmap(img)
            Dim jgpEncoder As Imaging.ImageCodecInfo = GetEncoder(Imaging.ImageFormat.Jpeg)
    
            Dim myEncoder As System.Drawing.Imaging.Encoder = System.Drawing.Imaging.Encoder.Quality
    
            Dim myEncoderParameters As New Imaging.EncoderParameters(1)
    
            Dim myEncoderParameter As New Imaging.EncoderParameter(myEncoder, valore)
            myEncoderParameters.Param(0) = myEncoderParameter
            bmp1.Save("c:\TestPhotoQualityFifty.jpg", jgpEncoder, myEncoderParameters)
    
        End Sub

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.