331 messaggi dal 06 maggio 2003
Mi trovo a dover affrontare un problema che da sempre ho lasciato da parte. Ora però, con tutti sti telefoni con risoluzione oltre i 7Mpx il problema è diventato pesante.

Ho un sito nel quale viene caricata una singola immagine alla volta. Questa immagine viene caricata, salvata temporaneamente in una cartella d'appoggio e successivamente ridimensionata.

In pratica mi prendo l'immagine salvata, ne genero un oggetto immagine, lo ridimensiono e salvo l'immagine

Public void ResizeImage(Image image, int width, int height, string imgFileName)
{
    using (image)
    {
        Image thumbNail = new Bitmap(width, height, image.PixelFormat);

        Graphics g = Graphics.FromImage(thumbNail);
        
        g.CompositingQuality = CompositingQuality.HighQuality;
        g.SmoothingMode = SmoothingMode.HighQuality;
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
        Rectangle rect = new Rectangle(0, 0, width, height);
        g.DrawImage(image, rect);
        thumbNail.Save(imgFileName, format);
    }
}


Il problema sorge alla chiamata di

Graphics g = Graphics.FromImage(thumbNail);

dove, se l'immagine originale supera la dimensione di circa 2000px in almeno uno dei due lati, viene generata l'eccezione di cui all'oggetto. Questo anche se l'immagine originale è di peso inferiore ai 200KB.

Esiste un modo per ovviare a questo problema?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.