Newsgroup: it.comp.lang.javascript
Titolo: sapere la risoluzione di una foto, come?

Ciao a tutti,
dovrei fare uno script che mi visualizza una serie di foto (tutte diverse)  
in base alla loro risoluzione e a quella dello schermo.
Ora mi si pone questo problema, come faccio a conoscere la risoluzione di 
una foto?
esempio se ho una foto 800*600 e la risoluzione video a 800*600 vorrei 
visualizzarla al 80% sia in altezza che in larghezza, ma se la successiva 
e' 600*800 (cioe' verticale) dovro' visualizzarla almeno con un altezza del 
65% se non voglio usare le scrollbar.
Come posso fare a rilevare le dimensioni delle foto?
Vic

non è possibile in javascript. (ben accette smentite..)
io lo faccio con del codice server-side (vbscript) appoggiandomi ad un
componente scritto in vb.
--
CIAO!
Gusher
"Vincenzo Zini" <studi...@SPAMlibero.it> ha scritto nel messaggio
news:Xns915BBD...@0.0.0.1...


 la risoluzione di una foto?
Le dimensioni di un'immagine possono essere conosciute tramite le proprietą
width e height (vedi l'esempio qui sotto).
Vi č perņ una limitazione: l'immagine deve gią essere caricata, per cui si
dovrą vare il preload di tutte le immagini.
<script language="JavaScript">
img = new Image();
img.src = "nome dell'immagine";
function ImageSize(image) {
   alert('height=' + image.height +'; width=' + image.width);
}
</script>
<a href="javascript:ImageSize(img);">Dimensioni dell'immagine</a>
Maurizio.

 
Ho provato a utilizzare quanto hai scritto all'itnerno della mia pagina, 
ma non capisco perche' non funzioni.
posto l'intera pagina per vedere se qualcuno capisce dove e' l'errore, 
aggiungo solo che se chiamo la funzione ImageSize(image) con un link 
(commentando il richiamo da newPage()) mi si apre l'alert con i valori 
giusti ma non riesco a passare questi valori al Tag <img src=""> tramite 
gli attributi height="&{altezza}" e width="&{larghezza}" ricevo sempre 
l'errore "errore image non e' definito":
<head>
<script language="JavaScript">
numImages = 8;
page = 0;
img = 0;
h=screen.height;
w=screen.width;
function newPage()
{
  var numStr = new String(page);
  srcImg = "Img";
  for (var j=0; j<(8-numStr.length-"Img".length); j++)
    srcImg += 0;
  srcImg += page+".jpg";
  document.PresentPage.src = srcImg;
  img = new Image();
  img.src = srcImg;
  ImageSize(image);
}
function placeArrowsH()
{
  document.write("<CENTER>");
  document.write("<A HREF=\"Index.htm\" onClick=\"if (page > 0) { page=0; 
newPage(); }; return false\"><IMG SRC=\"First.gif\" BORDER=0 ALT=\"First 
page\"></A>");
  document.write("<A HREF=\"Index.htm\" onClick=\"if (page > 0) { page--; 
newPage(); }; return false\"><IMG SRC=\"Prev.gif\" BORDER=0 ALT=\"Previous 
page\"></A>");
  document.write("<A HREF=\"Index.htm\" onClick=\"if (page < numImages-1) 
{ page++; newPage(); }; return false\"><IMG SRC=\"Next.gif\" BORDER=0 
ALT=\"Next page\"></A>");
  document.write("<A HREF=\"Index.htm\" onClick=\"if (page < numImages-1) 
{ page=numImages-1; newPage(); }; return false\"><IMG SRC=\"Last.gif\" 
BORDER=0 ALT=\"Last page\"></A>");
  document.write("</CENTER>");
}
function ImageSize(image)
{
  Hi=image.height;
  Wi=image.width;
  if(Hi>Wi && Hi<(h*92/100)) {altezza=Hi; larghezza=Wi}
  else if (Hi>Wi && Hi>(h*92/100)) {altezza=(h*92/100); 
larghezza=(w*92/100)}
  else if (Hi<Wi && Wi>(w*92/100)) {larghezza=(w*92/100); 
altezza=(h*92/100)}
  else if (Hi<Wi && Wi<(w*92/100)) {larghezza=Wi ;altezza=Hi}
alert("altezza="+altezza+" larghezza=" +larghezza);
}
</script>
</head>
  <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LEFTMARGIN="0" RIGHTMARGIN="0" 
TOPMARGIN="0" BOTTOMMARGIN="0" onload="newPage()">
    <CENTER>
      <TABLE WIDTH="100%" HEIGHT="100%" BORDER=0 COLS=3 CELLPADDING="0" 
CELLSPACING="0">
        <TR>
          <TD WIDTH="1"></TD>
          <TD><a 
href="javascript:ImageSize(img);">Dimensione immagine</a></TD>
          <TD></TD>
        </TR>
        <TR>
          <TD ALIGN=CENTER></TD>
          <TD ALIGN=CENTER VALIGN=CENTER><IMG SRC="Img00000.jpg" 
NAME=PresentPage  width="&{larghezza}" height="&{altezza}"></TD>
	  <TD ALIGN=CENTER></TD>
        </TR>
        <TR>
          <TD></TD>
          <TD ALIGN=CENTER><SCRIPT 
LANGUAGE="JavaScript">placeArrowsH()</SCRIPT></TD>
          <TD></TD>
        </TR>
        <TR>
          <TD></TD>
          <TD ALIGN=CENTER></TD>
          <TD></TD>
        </TR>
      </TABLE>
    </CENTER>
  </BODY>

 ImageSize(image);
dubito che possa funzionare; fai sě il preload dell'immagine, ma quando
richiami ImageSize() l'immagine non č stata ancora caricata. E poi dovresti
passare "img" e non "image".
Ciao,
Maurizio.

 wrote in
news:eFcK7.129922$
sq5.6...@news.infostrada.it
: 

adesso provero' a passare img (a dire il vero avevo gia' provato ma non mi 
funzionava)
pero' io con onload carico newPage() questo non basta a caricare 
l'immagine?
se non basta come devo fare?
Vic

un'altra cosa...e se io provassi a ridimensionare l'immagine una volta 
visualizzata? magari l'effetto non sara' il massimo ma potrebbe essere 
scambiato come un effetto di transizione...:-)
come potrei fare?

 visualizzata?
Perché no? Però stai attento che IE fa un po' di bizze.
Maurizio.