Javascript Bildmaße ausgeben

Ronald Nickel

Legendäres Mitglied
Hallo
eine Bitte an die javascriptjünger unter euch:
Binde ich dieses Fragment in ein IMG-Tag ein, erhalte ich per Mouseover die Dateigröße des Bildes
ONLOAD="if (this.fileSize) this.title = this.fileSize + ' bytes'">

Ich bräuchte aber die Maßangabe des Bildes in Pixel.
Jeglicher Versuch

ONLOAD="if (this.filewidth....

oder ähnliches zu basteln wird mit Fehlermeldungen belohnt.

Ich komme nicht weiter
Kann mir jemand helfen?

Gruß Ronny
 
Nun, kann ja auch grundlegend schon mal nicht funktionieren, weil Du mit this wohl eher auf das Dokument an sich versucht zugreifen und nicht auf das entsprechende Bild, d.h. Du muss JavaScript sagen, wo es das Bild im Dokument findet.

http://de.selfhtml.org/javascript/objekte/...t_element_by_id
http://de.selfhtml.org/javascript/objekte/...lements_by_name
http://de.selfhtml.org/javascript/objekte/...nts_by_tag_name


Die Werte des Bilds sind dann unter den Attributten witdh und height zu finden.

http://de.selfhtml.org/javascript/objekte/images.htm#height


Ich hoffe das hilft Dir etwas weiter. Die Schwierigkeit hierbei ist höchstens das Ganze so zu schreiben, dass es noch W3C-Konform bleibt und das Bild auch bereits geladen wurde, wenn die Abfrage stattfindet.


Gruß,
Sascha
 
Hallo Sascha

nein, ich denke der Fehler liegt bei mir.
Mit deinem Scrpt werden die Maße der Anzeigengröße im Browser ausgegeben nicht aber die Maße der tatsächlichen nicht skalierten Datei.

Ich muss mit der Maus über ein Thumbnail gehen können um anhand der Angaben zu entscheiden, ob ich ein Resize machen muss oder nicht.

Gruß Ronny
 
Man kann das machen, indem man das Bild ein zweites Mal im Hintergrund in eine Variable lädt.

Gibt man da die Größe nicht an, dann hat man die tatsächliche Größe:

CODE <script type='text/javascript'>
function bestimme(src) {
var i = new Image();
i.src = src;
alert(i.height);
}
</script>

<img src='bildadresse' onmouseover='bestimme(this.src);'/>


Ist so natürlich etwas aufwendig. Eigentlich genügt es, beim body-onLoad - Ereignis einmal einen Array für alle Bilder zu erstellen und diese Images nachzuladen.
 
Zurück
Oben