Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161

    recupero dimensioni reali immagini

    salve io vorrei con una funzionacina in javascript recuperare le dimensioni reali di una immagine presente in una pagina html.
    se la immagine in memoria ha una risoluzione di 1024*640 ()ad esempio
    e le proprietà del tag igm sono width=640 e height=400
    con una funzione vorrei recuperare 1024 e 640.
    come posso fare?
    grazie mille!

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    quei due attributi del tag img non sono obbligatori nell'xhtml 1.0 cmq se vuoi inserirli per forza, per recuperare la dimensione dell'immagine puoi usare offsetHeight e offsetWidth

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    ciao, non mi ritorna....
    ti posto il codice completo così puoi fare una prova

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>completo coordinate relative</title>

    </head>
    <body>
    <center>

    [img]2.jpg[/img]

    <form name="readout">
    divmousepos:
    <input name="divmousepos" value=" "/>
    </form>
    </center>
    <script type="text/javascript" language="javascript">
    <!--//
    var h;
    var w;
    function grandezza_imm(){
    imm = new Image();
    imm.src = './2.jpg';
    h = imm.offsetHeight;
    w = imm.offsetWidth;
    alert('prof:'+w);
    alert('alt:'+h);
    }




    function displayDivMouseCoords(e){
    coords = getMouseCoordsWithinEventTarget(e);
    document.readout.divmousepos.value = coords.x + ', ' + coords.y;
    }

    imm = document.getElementById('immagine');
    imm.onclick = displayDivMouseCoords;


    function getMouseCoordsWithinEventTarget(event){
    var coords = { x: 0, y: 0};

    if(!event) // then we have a non-DOM (probably IE) browser
    {
    event = window.event;
    coords.x = event.offsetX;
    coords.y = event.offsetY;
    }
    else // we assume DOM modeled javascript
    {
    var Element = event.target ;
    var CalculatedTotalOffsetLeft = 0;
    var CalculatedTotalOffsetTop = 0 ;

    while (Element.offsetParent)
    {
    CalculatedTotalOffsetLeft += Element.offsetLeft ;
    CalculatedTotalOffsetTop += Element.offsetTop ;
    Element = Element.offsetParent ;
    }
    coords.x = parseDouble(w/(event.pageX - CalculatedTotalOffsetLeft)) ;
    coords.y = parseDouble(h/(event.pageY - CalculatedTotalOffsetTop)) ;
    }

    return coords;
    }

    -->
    </script>
    </body>
    </html>


    mi stampa prof:0 e alt:0
    invece che prof:500 e alt:400

    dove sbaglio?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    posto questo codice che è più semplice del precedente,
    qui io stampo il valore della grandezza dell'immagine recuperata con imm.offsetWidth e stesso per height ma mi dà 0 e non la dimensione reale

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head><title>il movimento del mouse</title></head>
    <body>

    <script type="text/javascript">
    var x;
    var y;
    var h;
    var w;
    var rappx;
    var rappy;
    function get_coord(e) {

    // compatibilità crossbrowser
    if (!e) var e = window.event;
    //alert('in funzione get_coord');
    x = e.pageX;
    y = e.pageY;
    imm = new Image();
    imm.src = './2.jpg';
    h = imm.offsetHeight;
    w = imm.offsetWidth;
    rappx = parseDouble(w/x);
    rappy = parseDouble(h/y);
    }

    function insert_value(rappx,rappy){
    document.getElementById("seconda").innerHTML = x;
    document.getElementById("terza").innerHTML = y;
    }

    </script>
    <center>
    <div>

    [img]2.jpg[/img]

    </a>
    </div>
    <div>
    <table>
    <tr>
    <td>cella 1</td>
    <td id="seconda">cella 2</td>
    <td id="terza">cella 3</td>
    </tr>
    </table>
    </div>
    </center>
    </body>
    </html>

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    forse non mi sono spiegato bene e me ne accorgo solo adesso, io vorrei avere un metodo/proprietà che mi dia la dimensione/i della immagine in memoria non nella pagina html,
    è possibile questo?
    grazie mille

  6. #6
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    ahhhhhhhhhhh, ora ho capito no, con js non puoi fare nulla...devi usare asp o php (con quelli dovrebbe essere possibile)

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    poco fa ci sono riuscito se vuoi ti posto il codice, è un po' contorto ma neanche molto.
    grazie cmq ciao

  8. #8
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Originariamente inviato da Pinzi83
    poco fa ci sono riuscito se vuoi ti posto il codice, è un po' contorto ma neanche molto.
    grazie cmq ciao
    con js e senza caricare le immagini? :master:

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    l' immagine per forza la devi caricare
    e per sapere quando ha finito basta settare un gestore evento onload sull' oggetto Image

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    si l'immagine la carico, ho usato l'attributo complete.

    var booleano = img.complete;
    alert(booleano) dà true o false a seconda che l'imm sia caricata o meno.
    però oggi mi sono accorto che non funziona su tutti i browser specie sui
    windows mobile.

    mi puoi postare per fare il codice di come l'hai pensata tu che la provo subito.
    ti ringrazio molto per il parere.

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.