Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di jartuf
    Registrato dal
    Oct 2002
    Messaggi
    174

    Resize percorso dinamico

    Ciao a tutti, sto utilizzando un codice freeasp per un resize,
    ora però mi sono incartato con il richiamo dell'immagine che è dinamcica
    prima
    codice:
    [img]<%= oRst([/img]" align="left">
    dopo
    codice:
    [img]resize.aspx?Filename=<%= oRst([/img]&ScaleFactor=20" align="left">

    il file resize.aspx è
    codice:
    <%@ Page Language="C#" %>
    <%@ import Namespace="System.Drawing" %>
    <%@ import Namespace="System.Drawing.Imaging" %>
    <%@ import Namespace="System.Text.RegularExpressions" %>
    <script runat="server">
    
    int MaxWidth = 100; // Larghezza massima dopo il quale l'immagine viene ridimensionata
    int MaxHeight = 100; // Altezza massima dopo il quale l'immagine viene ridimensionata
    int ScaleFactor = 20; // Fattore di scala per la miniatura
    System.Drawing.Image oldImage, newImage;
    
    void Page_Load(Object sender, EventArgs e) {
    if ( Request.QueryString["FileName"'> != null ) {
    string strFileName = Convert.ToString(Request.QueryString["FileName"'>);
    if ( Request.QueryString["ScaleFactor"'> != null && Convert.ToString(Request.QueryString["ScaleFactor"'>) != "" && IsInteger(Convert.ToString(Request.QueryString["scalefactor"'>)) ) ScaleFactor = Convert.ToInt32(Request.QueryString["ScaleFactor"'>);
    if ( strFileName != "" ) {
    try {
    oldImage = System.Drawing.Image.FromFile( Server.MapPath(strFileName) );
    if ( oldImage.Width > MaxWidth || oldImage.Height > MaxHeight ) {
    // Immagine troppo grande, visualizzo la miniatura
    newImage = oldImage.GetThumbnailImage( (oldImage.WidthScaleFactor/100), (oldImage.HeightScaleFactor/100), null, IntPtr.Zero);
    Response.ContentType = "image/jpeg";
    newImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
    oldImage.Dispose();
    newImage.Dispose();
    oldImage = null;
    newImage = null;
    } else {
    // Immagine piccola, non faccio nulla
    Response.ContentType = "image/jpeg";
    oldImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
    oldImage.Dispose();
    oldImage = null;
    }
    } catch (Exception ex) {
    Response.Write(ex.Message);
    }
    }
    }
    }
    
    private bool IsInteger(string strTmp) {
    Regex objNotIntPattern = new Regex("[^0-9-'>");
    Regex objIntPattern = new Regex("^-[0-9'>+$|^[0-9'>+$");
    return !objNotIntPattern.IsMatch(strTmp) && objIntPattern.IsMatch(strTmp);
    }
    
    </script>
    esattamente uguale a qui

    Help, grazie 1000!
    La vita è una scala. Non smettere mai di salire.
    Jartuf Art Design
    La Web-tv degli studenti di Bologna

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    oRst("Imglink").Value non deve esser eun valore del tipo http://www.sito.it/img.jpg.. deve essere solo /img.jpg, in modo ke poi si possa utilizzare Server.MapPath("/img.jpg")

  3. #3
    Utente di HTML.it L'avatar di jartuf
    Registrato dal
    Oct 2002
    Messaggi
    174
    Ho provato a mettere un percorso fisso ma nn cambia nulla
    codice:
    [img]/news_uni/resize.aspx?Filename=/public/foto/rere.jpg&ScaleFactor=20[/img]
    uahhhh

    Forse ho sbagliato qualcosaltro??
    La vita è una scala. Non smettere mai di salire.
    Jartuf Art Design
    La Web-tv degli studenti di Bologna

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    ke errore da se vai direttamente nella pagina..
    cioè al posto ke [img]...[/img] vai sul browser e digita pagina.aspx?img=...

  5. #5
    Utente di HTML.it L'avatar di jartuf
    Registrato dal
    Oct 2002
    Messaggi
    174

    ok

    perfetto...cioè penso che era errato lo script, l'ho cambiato con questo
    codice:
    <%@ Page Language="C#" %> 
    <%@ import Namespace="System.Drawing" %> 
    <%@ import Namespace="System.Drawing.Imaging" %> 
    <%@ import Namespace="System.Text.RegularExpressions" %> 
    <script runat="server"> 
    
    int MaxWidth = 100; // Larghezza massima dopo il quale l'immagine viene ridimensionata 
    int MaxHeight = 100; // Altezza massima dopo il quale l'immagine viene ridimensionata 
    int ScaleFactor = 20; // Fattore di scala per la miniatura 
    System.Drawing.Image oldImage, newImage; 
    
    void Page_Load(Object sender, EventArgs e) { 
    if ( Request.QueryString["FileName"] != null ) { 
    string strFileName = Convert.ToString(Request.QueryString["FileName"]); 
    if ( Request.QueryString["ScaleFactor"] != null && Convert.ToString(Request.QueryString["ScaleFactor"]) != "" && IsInteger(Convert.ToString(Request.QueryString["scalefactor"])) ) ScaleFactor = Convert.ToInt32(Request.QueryString["ScaleFactor"]); 
    if ( strFileName != "" ) { 
    try { 
    oldImage = System.Drawing.Image.FromFile( Server.MapPath(strFileName) ); 
    if ( oldImage.Width > MaxWidth || oldImage.Height > MaxHeight ) { 
    // Immagine troppo grande, visualizzo la miniatura 
    newImage = oldImage.GetThumbnailImage( (oldImage.Width*ScaleFactor/100), (oldImage.Height*ScaleFactor/100), null, IntPtr.Zero); 
    Response.ContentType = "image/jpeg"; 
    newImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 
    oldImage.Dispose(); 
    newImage.Dispose(); 
    oldImage = null; 
    newImage = null; 
    } else { 
    // Immagine piccola, non faccio nulla 
    Response.ContentType = "image/jpeg"; 
    oldImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 
    oldImage.Dispose(); 
    oldImage = null; 
    } 
    } catch (Exception ex) { 
    Response.Write(ex.Message); 
    } 
    } 
    } 
    } 
    
    private bool IsInteger(string strTmp) { 
    Regex objNotIntPattern = new Regex("[^0-9-]"); 
    Regex objIntPattern = new Regex("^-[0-9]+$|^[0-9]+$"); 
    return !objNotIntPattern.IsMatch(strTmp) && objIntPattern.IsMatch(strTmp); 
    } 
    
    </script>
    che è similissimo ma funziona..

    e poi lo richiamo, dinamicamente, con questo
    [code][img]news_uni/GetThumbnailImage.aspx?FileName=<%= oRst([/img]&ScaleFactor=20" border="0" alt="Ingrandisci">[/code
    ora mi toccherà passare da % a dimensioni fisse delle immagini, ma faccio prima una ricerca ho visto che è stato trattato + volte,
    ciao e grazie!
    La vita è una scala. Non smettere mai di salire.
    Jartuf Art Design
    La Web-tv degli studenti di Bologna

  6. #6
    Utente di HTML.it L'avatar di jartuf
    Registrato dal
    Oct 2002
    Messaggi
    174
    UP
    sapete come passare a dimensioni fisse anzichè in percentuale?? grazie..
    La vita è una scala. Non smettere mai di salire.
    Jartuf Art Design
    La Web-tv degli studenti di Bologna

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    togli questa riga
    codice:
    newImage = oldImage.GetThumbnailImage( (oldImage.Width*ScaleFactor/100), (oldImage.Height*ScaleFactor/100), null, IntPtr.Zero);
    e metti questa
    codice:
    newImage = oldImage.GetThumbnailImage(nuovaDimensioneX, nuovaDimensioneY, null, IntPtr.Zero);
    ovviamente nuovaDimensioneX e Y possono essere passati via querystring: Request.Querystring[".."]

  8. #8
    Utente di HTML.it L'avatar di jartuf
    Registrato dal
    Oct 2002
    Messaggi
    174
    uhm...sto provando ma ho fatto qualche casino come al solito..
    Ho messo questo quando richiamo la foto
    codice:
                     <td colspan="3"  class="testo" valign="top">[img]/news_uni/GetThumbnailImage.aspx?FileName=<%= oRst([/img]&nuovaDimensioneX=120" border="0" alt="Ingrandisci"  onerror="this.src='/immagini/spacer.gif'"  onClick="openwin('<%= oRst("Imglink").Value %>',800,600)" style="cursor:pointer"><%=Replace(oRst("Descrizione"),VBcRlF,"
    ")%>
    mentre nel file .aspx
    codice:
    int MaxWidth = 100; // Larghezza massima dopo il quale l'immagine viene ridimensionata 
    int MaxHeight = 100; // Altezza massima dopo il quale l'immagine viene ridimensionata 
    int nuovaDimensionex = 20; // Fattore di scala per la miniatura
    codice:
    if ( Request.QueryString["nuovaDimensionex"] != null && Convert.ToString(Request.QueryString["nuovaDimensionex"]) != "" && IsInteger(Convert.ToString(Request.QueryString["nuovaDimensionex"])) ) ScaleFactor = Convert.ToInt32(Request.QueryString["nuovaDimensionex"]);
    e
    codice:
    newImage = oldImage.GetThumbnailImage(nuovaDimensioneX, null, IntPtr.Zero); Response.ContentType = "image/jpeg";
    ho omesso la dimensione height sfruttando l'html che dovrebbe proporzionare tutto, dov'è l'errore/orrore?
    grazie come sempre
    La vita è una scala. Non smettere mai di salire.
    Jartuf Art Design
    La Web-tv degli studenti di Bologna

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    devi metterla cmq..
    se non vuoi sproporzionare tutto ti devi fare una proporzione..

    oldX: newX = oldY: newY
    newY = (oldY*newX)/oldX
    ma questa è algebra

  10. #10
    Utente di HTML.it L'avatar di jartuf
    Registrato dal
    Oct 2002
    Messaggi
    174
    bè ho inserito anche i parametri nuovaDimensioneY a tutto ma nn funge...
    codice:
    <script runat="server"> 
    
    int MaxWidth = 100; // Larghezza massima dopo il quale l'immagine viene ridimensionata 
    int MaxHeight = 100; // Altezza massima dopo il quale l'immagine viene ridimensionata 
    int nuovaDimensionex = 150; // Fattore di scala per la miniatura 
    int nuovaDimensioney = 50; // Fattore di scala per la miniatura 
    
    System.Drawing.Image oldImage, newImage; 
    
    void Page_Load(Object sender, EventArgs e) { 
    if ( Request.QueryString["FileName"] != null ) { 
    string strFileName = Convert.ToString(Request.QueryString["FileName"]); 
    if ( Request.QueryString["nuovaDimensionex,nuovaDimensioneY"] != null && Convert.ToString(Request.QueryString["nuovaDimensionex,nuovaDimensioneY"]) != "" && IsInteger(Convert.ToString(Request.QueryString["nuovaDimensionex,nuovaDimensioneY"])) ) ScaleFactor = Convert.ToInt32(Request.QueryString["nuovaDimensionex,nuovaDimensioneY"]); 
    if ( strFileName != "" ) { 
    try { 
    oldImage = System.Drawing.Image.FromFile( Server.MapPath(strFileName) ); 
    if ( oldImage.Width > MaxWidth || oldImage.Height > MaxHeight ) { 
    // Immagine troppo grande, visualizzo la miniatura 
    newImage = oldImage.GetThumbnailImage(nuovaDimensioneX, nuovaDimensioneY, null, IntPtr.Zero); Response.ContentType = "image/jpeg"; 
    newImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 
    oldImage.Dispose(); 
    newImage.Dispose(); 
    oldImage = null; 
    newImage = null; 
    } else { 
    // Immagine piccola, non faccio nulla 
    Response.ContentType = "image/jpeg"; 
    oldImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 
    oldImage.Dispose(); 
    oldImage = null; 
    } 
    } catch (Exception ex) { 
    Response.Write(ex.Message); 
    } 
    } 
    } 
    } 
    
    private bool IsInteger(string strTmp) { 
    Regex objNotIntPattern = new Regex("[^0-9-]"); 
    Regex objIntPattern = new Regex("^-[0-9]+$|^[0-9]+$"); 
    return !objNotIntPattern.IsMatch(strTmp) && objIntPattern.IsMatch(strTmp); 
    } 
    
    </script>
    codice:
                <td colspan="3"  class="testo" valign="top">[img]/news_uni/GetThumbnailImage.aspx?FileName=<%= oRst([/img]&nuovaDimensioneX=150&nuovaDimensioneY=50" border="0" alt="Ingrandisci"  onerror="this.src='/immagini/spacer.gif'"  onClick="openwin('<%= oRst("Imglink").Value %>',800,600)" style="cursor:pointer"><%=Replace(oRst("Descrizione"),VBcRlF,"
    ")%>
    La vita è una scala. Non smettere mai di salire.
    Jartuf Art Design
    La Web-tv degli studenti di Bologna

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 © 2026 vBulletin Solutions, Inc. All rights reserved.