Io mi permetto un ultimo intervento, poi ti lascio. In attesa di risolvere, e non ne dubito, ti mostro qualcosa.
Ho fatto un progetto vuoto con Visual Studio, in locale naturalmente.
Nella directory bin ci butto dentro quella dll
Adesso una paginetta di prova, c# o basic è indifferente: io ho fatto l'esempio in basic
codice:
Option Strict On
Imports System.Drawing.Bitmap
Imports System.Drawing.Text
Imports System.Drawing.Imaging
Imports j = gdi.img
Partial Class a
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'se non ho già acquisito e salvato l'immagine su disco
'leggo l'immagine da remoto, la ridimensiono a 500px
'e la salvo su disco ad alta qualità in formato png
If Not IO.File.Exists("c:\tmp\nebula_helix.png") Then
j.ImgResizeAndSaveToFile("http://www.facundoallia.com.ar/imagenes/jpgs/asolar/nebulosa_helix.jpg", 500, True, "c:\tmp\nebula_helix.png", gdi.img.FormatoOutput.png)
End If
'recupero l'immagine da disco e la porgo al chiamante
'-1 --> non viene ridimensionata (lo è già)
'questa versione di overload fornisce una immagine jpg a compressione predefinita circa .75
j.ImgResizeAndSaveToResponseOutputStream("c:\tmp\nebula_helix.png", -1)
End Sub
End Class
come vedi le istruzioni sono due.
Controllo se l'immagine è già stata ridimensiona. Se lo è la restituisco al chiamante.
Se non è stata già ridimensionata, prima la ridimensiono e la salvo su disco, poi la restituisco al chiamante.
NOTA, che puoi acquisire le immagini dal disco, da remoto o da stream mediante upload.
Ciao