+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

dimensionare foto

  1. #1
    panatronic non è in linea Scolaretto
    In una mia applicazione ho una serie di foto in una cartella che dovrei ridimensionare.

    ho due possibilità:
    1 = dimensionarle e salvarle in una seconda cartella da dove poi le vado a caricare in un controllo ListView.

    2 = Dimensionarle mentre le carico nel controllo ListView.

    Preferisco la prima dato che potrei farlo con una procedura una volta sola e basta..in questo modo il caricamento nella listview sarà più veloce.

    come faccio a comprimere le foto?

    grazie.
    ℹ️ Leggi di più su panatronic ...

  2. #2
    L'avatar di Gandalfrank
    Gandalfrank non è in linea Scribacchino
    Tu vuoi ridimensionare definitivamente le immagini in modo che mantengano sempre quelle misure, o vuoi semplicemente visualizzarle all'interno di un controllo con dimensioni diverse e al quale si devono adattare?

    ℹ️ Leggi di più su Gandalfrank ...

  3. #3
    L'avatar di Gandalfrank
    Gandalfrank non è in linea Scribacchino
    Ho cercato un pò in giro, e nel caso tu debba ridimensionare definitivamente un immagine puoi fare in questo modo:
            Dim bm As New Bitmap("D:\Pippo1.jpg") 'immagine di 73x80 pixel
            Dim new_bm As New Bitmap(bm, 150, 400) 'nuova dimensione di 150x400
    
            bm.Dispose()
            new_bm.Save("D:\Pippo2.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
    
    Non so se è il metodo migliore, ma funziona.

    ℹ️ Leggi di più su Gandalfrank ...

  4. #4
    panatronic non è in linea Scolaretto
    Grazie Gandalfrank.

    simile al tuo ieri ho fatto una tips presa spunto da qualcosa trovato dall'amico google..

    Mia Tips

    Grazie a tutti di tutto
    ℹ️ Leggi di più su panatronic ...

  5. #5
    L'avatar di Gandalfrank
    Gandalfrank non è in linea Scribacchino
    Ti comunico che solo gli utenti registarti alla comunità possono vedere la tua Tips.
    ℹ️ Leggi di più su Gandalfrank ...

  6. #6
    panatronic non è in linea Scolaretto
    Scusate..

    Eccola.



    Con questo codice si ridimensiona un'immagine JPG senza alterarne la qualità.

    Sub Main()
    ' uso del metodo
    ImageResize("PercorsoImageSoruce", 32, 32).Save("PercorsoCartellaDestinazione")
    End Sub
    ''' <SUMMARY>
    ''' Ridimensiona una immagine
    ''' </SUMMARY>
    ''' <PARAM name="psFilePath">Percorso dell'immagine originale</PARAM>
    ''' <PARAM name="pWidth">Larghezza dell'immagine restituita</PARAM>
    ''' <PARAM name="pHeight">Altezza dell'immagine restituita</PARAM>
    ''' <RETURNS>immagine ridimensionata</RETURNS>
    Private Function ImageResize(ByVal sourceImageFilePath As String, _
    ByVal newImageWidth As Integer, ByVal newImageHeight As Integer) As Bitmap
    Dim sourceImage As New Bitmap(sourceImageFilePath)
    Dim targetImage As Bitmap = New Bitmap(newImageWidth, newImageHeight)
    Dim targetGraphics As Graphics = Graphics.FromImage(targetImage)
    targetGraphics.DrawImage(sourceImage, 0, 0, _
    targetImage.Width + 1, _
    targetImage.Height + 1)
    Return targetImage
    End Function
    ℹ️ Leggi di più su panatronic ...

  7. #7
    Nottambulo non è in linea Scolaretto
    Ho provato il codice di panatronic

     
    Private Function ImageResize(ByVal sourceImageFilePath As String, _
    ByVal newImageWidth As Integer, ByVal newImageHeight As Integer) As Bitmap
    Dim sourceImage As New Bitmap(sourceImageFilePath)
    Dim targetImage As Bitmap = New Bitmap(newImageWidth, newImageHeight)
    Dim targetGraphics As Graphics = Graphics.FromImage(targetImage)
    targetGraphics.DrawImage(sourceImage, 0, 0, _
    targetImage.Width + 1, _
    targetImage.Height + 1)
    Return targetImage
    End Function
    
    Riduce l'immagine perfettamente, ma in termini di kb passa a oltre il doppio. La foto provata da 700 kb é passata a 1,6 mb. Ma è normale?

  8. #8
    L'avatar di bumm
    bumm non è in linea Topo di biblioteca Ultimo blog: [VB2010] ComboBox ed Enumeratori
    Si, perche e una bitmap senza la compressione. provi a salvarla come jpg e vedrai che sara piu piccola.
    L'algoritmo non mi convince pero... personalmente utilizzerei il metodo "ScaleTransform" di oggetto Graphics.
    ℹ️ Leggi di più su bumm ...

  9. #9
    Visto che non devi manipolare l'immagine, l'oggetto Graphics (per l'utilizzo che ne fai) è superfluo
    Public Function Ridimensiona(ByVal SourceImage As Bitmap, ByVal newSize As Size) As Bitmap
      Dim NewImage As New Bitmap(SourceImage, newSize.Width, newSize.Height)
       Return NewImage
    End Function
    
    Per salvare l'immagine(in questo caso jpg):
    Ridimensiona(SourceImage, New Size(width, height)).Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg)
    
    Ciao

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. dimensionare form popup maschere continue
    Da muttley005 nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 02-11-2016, 14:02
  2. Dimensionare i campi della sottomaschera
    Da cogest73 nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 29-07-2015, 15:24
  3. Dimensionare form per un browser personale
    Da Domenico_Falco1 nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 01-11-2014, 18:36
  4. Creare file jpeg foto panoramica da diverse foto.
    Da andre91 nel forum Visual Basic .Net
    Risposte: 0
    Ultimo Post: 28-02-2014, 16:48
  5. Valori per dimensionare un form come foglio a4
    Da simonedig nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 14-09-2011, 08:37