Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Comprimere le immagini [VB.NET]
Forum - C# / VB.NET - Comprimere le immagini [VB.NET]

Avatar
MrPaky (Member)
Pro


Messaggi: 125
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 1:31
Lunedì, 27/12/2010
Ciao a tutti di nuovo :) scusate il secondo post ma mi ero dimenticato di questa cosa :) allora vorrei un piccolo aiuto in prattica vorrei comprimere che si trovano in una cartella senza selezionare immagine per immagine non so se avete capito cosa intendo. E poi vorrei che sapere come potrei fare in modo che l'applicazione non si bloccasse (non so se a voi capita che durante per esempio l'invio di email vi da il messaggio l'applicazione non risponde) vorrei capire come deviare questo problema.


Grazie a tutti quanti e scusate il disturbo che creo.


Ciao e grazie ancora per tutto.

Auguri di buone feste :)

P.S. comprimere le immagini intendo quando si scatta una foto con una macchina fotocamera si ottengono immagini da 1,5 MB, 2MB ecc. Io vorrei comprimerli senza aprirle a uno a uno.

Ultima modifica effettuata da MrPaky il 27/12/2010 alle 1:40
PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 12:10
Lunedì, 27/12/2010
Sinceramente non ho capito di cosa hai bisogno.
Perfavore, potresti essere più chiaro e preciso?

Grazie

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 12:50
Lunedì, 27/12/2010
ehhh??? :noway:

PM Quote
Avatar
MrPaky (Member)
Pro


Messaggi: 125
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 14:02
Lunedì, 27/12/2010
1. Allora vorrei sapere se è possibile far in modo che l'applicazione non si blocchi ad esempio durante un processo ad esempèio l'invio di email se notata creando un'applicazione che invia delle email durante l'invio delle email si blocca ("Non risponde") e dopo un pò 5 - 10 sec dopo aver inviato l'email l'applicazione inizia a funzionare correttamente in poche parole vorrei che l'applicazione non si bloccasse durante l'invio di email

2. comprimere le immagini allora vorrei creare un'applicazione che permette all'utente di selezionare una cartella che contiene delle immagini e dopo averla selezionata che mi permette di modificare la dimensione di tutte le immagini contenuti nella cartella.

Capito? :)

Scusate per l'incasinamento :asd::asd::asd:


e grazie a tutti quanti :)

Ciaooooooooooooooo e buona giornata :)

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 14:17
Lunedì, 27/12/2010
Beh, intanto per due problemi diversi dovresti aprire due Thread diversi, altrimenti non faciliti l'utilizzo di un'eventuale soluzione per chi legga la discussione.

1) per il discorso dell'invio della mail non puoi fare nulla, se non far eseguire il codice che ferma l'aggiornamento della parte grafica del programma in in thread separato.

2) se vuoi che il tuo programma comprima dei files per ridurne la memoria occupata su disco, dovresti informarti nell'ambito della compressione, cerca su internet, analizza il codice che trovi, scrivine di tuo.
Quando avrai un problema relativo al codice poni pure la domanda, in modo chiaro.

=)

PM Quote
Avatar
MrPaky (Member)
Pro


Messaggi: 125
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 17:26
Lunedì, 27/12/2010
Ok ti ringrazio per l'aiuto :) aprirò un'altra discussione per il fatto del Thread :) grazie tante :)

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:00
Mercoledì, 29/12/2010
per comprimere le immagini allora si deve distinguere compressione e scala infatti scalare un'immagine ad esempio è come quando da 1280x1024 diventa 640x480 compressione è ad esempio se con la stessa dimensione occupa meno quindi dicci quale dei due vuoi

Hai capito qualcosa? Perché tu scrivi in questo modo e io non riesco a seguire il filo logico dei tuoi discorsi.
C'è differenza tra comprimere e scalare. Comprimi un file quando riesci a far stare la stessa quantità di informazione in uno spazio minore (parlo di compressione loseless). Fai una scala, invece, quando riduci le dimensioni di un'immagine (in questo caso), senza cambiare il soggetto che ritrae: in questo caso è solo il fatto di avere meno informazione da memorizzare a diminuire le dimensioni del file.

PM Quote
Avatar
MrPaky (Member)
Pro


Messaggi: 125
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 19:40
Giovedì, 30/12/2010
Ciao totem dovrei fare tutte e due lavori. Comprimere e ridimensionare le immagini.

Allora io ho provato ad buttare un qualcosa è ho fatto questo lavoro:
Codice sorgente - presumibilmente VB.NET

  1. Imports System.IO
  2. Imports System.Drawing
  3. Public Class Form1
  4.  
  5.     Private Sub SimpleButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButton1.Click
  6.         Dim bm As Integer = 200
  7.         Dim bb As Integer = 175
  8.         If (CheFil(ButtonEdit1.Text)) Then
  9.             Dim Larghezza As Integer = bm
  10.             Dim newAltezza As Integer = bb
  11.             Dim name As String = Mid(ButtonEdit1.Text, 1, (InStr(ButtonEdit1.Text, ".") - 1))
  12.             Dim filePath As String = ButtonEdit2.Text + name + ".png"
  13.             Dim NewBmp As Bitmap = New Bitmap(Larghezza, newAltezza, Imaging.PixelFormat.Format24bppRgb)
  14.             NewBmp.SetResolution(72, 72)
  15.             Dim newX As Integer = 0
  16.             Dim newY As Integer = 0
  17.             Dim reDuce As Decimal
  18.             reDuce = bm
  19.             newAltezza = bb
  20.             newY = bb
  21.             newX = bm
  22.             Dim newGrapi As Graphics = Graphics.FromImage(NewBmp)
  23.             Try
  24.                 newGrapi.Clear(Color.White)
  25.                 newGrapi.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
  26.                 newGrapi.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
  27.                 'newGrapi.DrawImage()
  28.             Catch ex As Exception
  29.  
  30.             End Try
  31.         End If
  32.     End Sub
  33.     Function CheFil(ByVal fileName As String) As Boolean
  34.         Dim est As String = Path.GetExtension(fileName)
  35.         Select Case est.ToLower()
  36.             Case ".gif"
  37.                 Return True
  38.             Case ".png"
  39.                 Return True
  40.             Case ".jpg"
  41.                 Return True
  42.             Case ".jpeg"
  43.                 Return True
  44.             Case ".bmp"
  45.                 Return True
  46.             Case Else
  47.                 Return False
  48.         End Select
  49.     End Function
  50. End Class


Però in questo modo devo specificare il percordo di un'immagine ma quello che vorrei io è non selezionare l'immagine ma la cartella delle immagine in modo da ridimensionare e comprimere tutte le immagini presenti nella cartella capito?? :):):)

Come posso fare?

Grazie Totem sei il migliore :)  

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:20
Venerdì, 07/01/2011
Usa IO.Directory.GetFiles per ottenere tutti i file in una cartella.

PM Quote