Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    ridimensionamento immagine con qualità

    Ciao a tutti,
    Sto uscendo pazzo con questo script cercando d'impostare i settaggi per una qualità alta.
    Ma niente ho solo errori.

    Qualcuno può aiutarmi?


    <%@ Import Namespace="System.Drawing"%>
    <%@ Import Namespace="System.Drawing.Imaging"%>

    <SCRIPT RUNAT="SERVER">

    Sub Page_Load()
    Dim width as Integer = 0
    Dim height as Integer = 0
    try

    ' ricava dimensioni dalla richiesta

    if not Request.QueryString("width") is Nothing Then
    width = Int32.Parse(Request.QueryString("width"))
    End if

    if not Request.QueryString("height") is Nothing Then
    height = Int32.Parse(Request.QueryString("height"))
    End if

    catch ex as Exception

    End Try

    ' ridimensiona l'immagine se specificato

    Dim immagine as String = Server.MapPath(Request("img"))
    'if Not System.Io.File.Exists(immagine) then
    'immagine = Server.MapPath("/immagini/nondisponibile.jpg")
    'end if

    call ImgRedim(immagine, width, height)

    ' fermo il resto della risposta

    Response.End()

    End Sub

    ' Funzione di redim

    Public Sub ImgRedim(immagine as String, width as Integer, height as Integer)
    Dim bmp as System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(immagine), System.Drawing.Bitmap)


    ' c'e` da ridimensionare?

    if width>0 or height>0 then

    ' se e` specificata solo la larghezza, calcola l'altezza

    if height = 0 Then
    height = Convert.ToInt32(width / bmp.Width * bmp.Height)
    End if

    ' (e viceversa)

    if width = 0 Then
    width = Convert.ToInt32(height / bmp.Height * bmp.Width)
    End if

    ' creo la Thumbnail con i parametri impostati
    Dim miniaturabmp as New System.Drawing.Bitmap(bmp, width, height)

    ' salvo sullo stream di output
    if immagine.EndsWith(".jpg") Then
    miniaturabmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)

    else
    miniaturabmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
    end if

    ' pulizia
    miniaturabmp.Dispose()
    else

    ' salvo sullo stream di output
    if immagine.EndsWith(".jpg") Then
    bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)

    else
    bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
    end if

    end if

    ' pulizia finale

    bmp.Dispose()
    End Sub

    </SCRIPT>

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Sarebbe bastata una semplice ricerca e ne avresti trovate quante volevi, per esempio:

    http://forum.html.it/forum/showthrea...ight=qualit%E0
    Pietro

  3. #3
    Ciao, grazie x avermi risposto..

    si avevo già visto quel post.
    xò mi veniva makkinoso e quindi volevo utilizzare quello ke ho già con al semplice aggiunta del settaggio della qualità..

    ma nn riesco a farlo funzionare

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Mi dispiace, ma non me la sento di assecondarti in una operazione che giudico sbagliata come impostazione. Io ti consiglio di ricordarti il "Divide et impera" che nel tuo caso significa dividere il problema in più problemi più semplici per essere affrontati più facilmente.
    Ad esempio, al posto di una procedura che fa tutto, costruisci tre procedure specializzate:

    una che legge l'immagine da file, stream, ect

    una che ridimensiona l'immagine

    una che salva l'immagine ridimensionata su file o su stream


    ps. e poi, il codice del link proposto va bene come materia di studio.
    Pietro

  5. #5
    non ho capito... giudichi sbagliato lo script? non va bene?

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da funnylux
    non ho capito... giudichi sbagliato lo script? non va bene?
    Mi sono imbattuto anche io nel problema del ridimensionamento immagini ed ho inizialmente cominciato con una procedura che legge, ridimensiona e salva, come la tua.
    Poi ho capito che la cosa non andava ed ho risolto con tre procedure base, una che legge, una che ridimensiona ed una che salva.
    Questo è come la penso, non che sia il modo migliore di affrontare l'argomento.

    Comunque, nel link che ho mandato c'è la soluzione: basta solo stampare il codice sorgente e studiarlo un attimino con attenzione; niente di difficile. Ciao
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.