:master: Non so se la mia risposta sia adeguata; vedi un po' tu
Allora, non ho voglia di vedere e modificare tutto quel codice. Io faccio così.
codice:
<%@ Import Namespace="g=gdi.img" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
'Dim strFile As String
'strFile = inputFile.PostedFile.FileName
'Dim strNomeFile As String
'strNomeFile = System.IO.Path.GetFileName(strFile)
'Dim strPercorsoFileUpload, strPercorsoFileUnzip As String
'strPercorsoFileUpload = Server.MapPath("/public/zip")
'strPercorsoFileUnzip = Server.MapPath("/public/temp/unzip")
'inputFile.PostedFile.SaveAs(strPercorsoFileUpload & "\" & strNomeFile)
'scompatta(strPercorsoFileUnzip, strPercorsoFileUpload & "\" & strNomeFile, True, False)
creaMiniature("C:\dati\ProveNikon\images", "c:\tmp", 300)
Response.Redirect("chiudi.asp")
End Sub
Protected Sub creaMiniature(ByVal directoryInput As String, ByVal directoryOutput As String, ByVal dimMax As Integer)
Dim files As String() = Directory.GetFiles(directoryInput, "*.jpg")
For i As Integer = 0 To files.Length - 1
g.ImgResizeAndSaveToFile(files(i), dimMax, Path.Combine(directoryOutput, Path.GetFileName(files(i))))
Next
End Sub
</script>
La prima parte, punto 1, lo fa la tua procedura.
Perciò, tutto si riduce a leggere i file di data estensione, per esempio, jpg, dalla directory delle immagini decompresse, e a creare in un'altra directory, le miniature, di buona qualità, con lo stesso nome.
Per fare questo, utilizzo due dll, scaricate da qui:
http://web.tiscali.it/archivio_esempi/zip/gdi.zip
Le decomprimo e le metto nella directory bin del sito. Ed è tutto.
ps. nella procedura semplificata che uso, salvo l'immagine con estensione jpg. La qualità è max (interpolazione bicubica); la compressione è quella media.
Se volessi altre caratteristiche (esempio, estensione png, gif, scrittura testo su immagine, fusione di logo in immagine...) lo potrei ottenere con qualche riga di codice in più, perchè la maggior parte del lavoro è nelle dll.
Ciao