Höhe eines Bildes bestimmen? - Geht nicht?

downset04

Erfahrenes Mitglied
Hallo

Ich möchte die Höhe eines Bildes bestimmen. Ich habe eine Funktion ->
Code:
function Image(image) {  -> image = Bildpfad zb. bla.gif
	Hoehe = document.images[image].height;
	alert (Hoehe);
}
Leider funktioniert das obige nicht? Ich denke es ist wegen dem [image]? Würde ich 0 reinsetzen dann gehts, dann nimmt er mir das erste Bild im html Dokument. Was muss da geändert werden?
Komisch das geht auch nicht müsste aber?->
Code:
function Image(image) {  -> image = Bildpfad zb. bla.gif
	Hoehe = document.images["bla.gif"].height;
	alert (Hoehe);
}


big thx
 
Zuletzt bearbeitet:
Du kannst mit JS nicht die Höhe beliebiger Grafiken ermitteln.
Die Grafiken musst du als HTML-Bestandteil des Dokumentes referenzieren(oder als JS-Variable, in welcher du ein per new Image() erzeugtes Grafikobjekt speicherst):
Code:
<script type="text/javascript">
<!--
window.onload=new Function('fx','alert(document.images["bildname"].height)');
//-->
</script>
<img src="bla.gif"name="bildname">
 
Wenn du wriklich keine andere Moeglichkeit hast, als die Bilder ueber ihren Pfad (z.B. 'http://www.beispiel.de/bilder/bild.jpg') anzusprechen, wirst du um eine Schleife, die alle Bilder durchgeht und ihre srcs mit dem Pfad vergleicht nicht herumkommen. Diese Schleife erzeugt dann die noetige Referens zum passenden Bild.
Code:
function Image(image) {
   	var obj = document.images;
   	 for(var i=0; i<obj.length; i++)
   		if (obj[i].src && obj[i].src == image) {
   			obj = obj[i];
   			break;
   		}
  	Hoehe = obj.height;
   	alert (Hoehe);
 }
In jedem Fall sollte dein Code nur funktionieren, wenn auch wirklich eine Eigenschaft "height" gesetzt ist. Ansonsten muesstest du es mit clientHeight oder so Schaerzen probieren und evtl. um jedes Bild einen Layer machen, dessen clientHeight du ausliest - zu der Problemeatik bie Hoehe von Element zu bestimmen gibt es hier einige Threads. Sollte es so nicht klappen musst du diese bemuehen, denn das naeher ausfuehren werde ich hier nicht.

P.S.
Sorry, falls Tippfehler rumschwirren, ich schreibe gerade mit einem sehr seltsamen Tastatur-Layout.

Edit:
Sven war schneller... habe wohl zu lange getippt - dafuer hat einer von uns dich anscheinend falsch verstanden.
 
Zuletzt bearbeitet:
downset04 hat gesagt.:
... Würde ich 0 reinsetzen dann gehts, dann nimmt er mir das erste Bild im html Dokument. ...
Genau so ist es: Sieh dir bitte mal die Objektreferenz in SelfHTML zum images-Objekt an, insbesondere die Erläuterungen zu den Beispielen im ersten Abschnitt "images: Allgemeines zur Verwendung".
Vielleicht funktioniert es so:
Code:
function Image(idx) { /* -> idx = Indexnummer der Grafiken in der HTML-Datei */
  	Hoehe = document.images[idx].height;
  	alert (Hoehe);
  }
 
Oder wie komme ich eigentlich zur Originalsize vom jpg file? die höhe die ich da habe ist eh falsch weil wenn ichs in Originalgröße darstellen will brauch ich ja die Originalgröße? und nicht die Größe von der verkleinerten Version?
 
Code:
function originalbildgroessenermittelfunktion(dateipfad)// :D
{
  img=new Image();
  img.src=dateipfad;
  img.onload=new Function('fx','alert(this.width+"x"+this.height)');
}
 

Neue Beiträge

Zurück