Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di TeoB
    Registrato dal
    Dec 2004
    Messaggi
    592

    Resize su dimensione maggiore

    Salve a tutti, utilizzo questo script per il resize delle immagini:

    codice:
    <%@ 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("nwidth") is Nothing Then
        width = Int32.Parse(Request.QueryString("nwidth"))
        End if
        if not Request.QueryString("nheight") is Nothing Then
        height = Int32.Parse(Request.QueryString("nheight"))
        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'è da ridimensionare?
      if width>0 or height>0 then
        ' se è 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>
    Lo richiamo in questo modo:

    img.aspx?img=tazza.jpg&nwidth=450

    Funziona molto bene, ma in questo modo non mi discrimina le immagini orizzontali da quelle verticali, ergo quelle orizzontali risultano essere piú piccole.

    Vorrei fare in modo che lo script riuscisse a valutare quale dimensione (altezza o larghezza) dell'immagine sia maggiore, e di conseguenza fare il resize basandosi sulla dimensione maggiore. Non conosco l'asp.net, non sarei capace di fare questa cosa da solo.

    Grazie anticipate a chi mi aiuta

  2. #2
    Se cerchi fra i miei post trovi sicuramente ciò che ti serve
    Ci sono due script... va beh ti facilito....

    uno è questo Qui
    l'altro è Questo

    io però ti consiglio di modificarti il primo al tuo scopo...
    in pratica quello era nato per fare l'upload di una immagine e salvarla "on-fly" gia
    ridimensionata...
    se poi ti dai un'occhiata anche all'altro sulle miniature noterai che per convertire,
    quello che fa l'upload, in uno che ridimensiona al volo non è poi così difficile

    Spero che ti servano in qualche modo...

    PS : ambedue gli script mantengono inalterate le proporzioni dell'immagine tenedo per
    buona la dimensione maggiore della stessa

    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  3. #3
    Utente di HTML.it L'avatar di TeoB
    Registrato dal
    Dec 2004
    Messaggi
    592
    Ciao Riddick, grazie mille per l'aiuto.

    Solo una domanda: i tuoi script salvano sul server la foto ridimensionata oppure la ridimensionano in streaming (mi pare si dica cosí)?

    Io vorrei che sul server rimanesse una copia dell'immagine nelle sue dimensioni originali

  4. #4
    il primo, l'upload con resize, fa solo quello...
    il seconso , quello per le miniature, crea ,partendo da un
    immagine sul server, la relativa miniatura...

    non fermarti mai allo script... se leggi tutti i commenti,
    partendo dal primo, ci sono già tutte le risposte ai tuoi quesiti.

    Io ti ho solo linkato i post che contengono le ultime versioni da
    me postate.

    Se poi non riesci ad adattarli al tuo script... mi fai un fischio e
    vediamo come risolverlo

    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  5. #5
    Utente di HTML.it L'avatar di TeoB
    Registrato dal
    Dec 2004
    Messaggi
    592
    Grazie, ci provo, anche se non ci capisco nulla

  6. #6
    Ma come???
    Il codice che si occupa del resize delle immagini è identico
    per tutti e due gli script, ed è pure commentato
    Va beh... fammi sapere... io intanto vedo se ho un pò di tempo
    per rimetterci le zampine sopra
    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  7. #7
    Utente di HTML.it L'avatar di TeoB
    Registrato dal
    Dec 2004
    Messaggi
    592
    Non è che non capisco nulla del tuo script, non capisco nulla dell'asp.net in generale

  8. #8
    a beh... allora è un'altra cosa
    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  9. #9
    allora? come è andato a finire il Post?
    c'è possibilità di partire dallo script originario e correggerlo per vedere quale delle due dimensioni è la maggiore?

  10. #10
    Originariamente inviato da pieroweb82
    allora? come è andato a finire il Post?
    c'è possibilità di partire dallo script originario e correggerlo per vedere quale delle due dimensioni è la maggiore?
    Studiati i miei due script che ho linkato sopra...
    sono commentati quindi non dovresti aver difficoltà nel vedere
    in quale parte di codice si leggono le dimensioni dell'immagine,
    si valuta quale delle due è più grande e si ridimensiona di
    conseguenza.
    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

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.