Originalweite eines Bildes
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abrufen
adresse
architektur
aufruf
ausgabe
bild
code
eigenschaft
eingabe
festzustellen
fragment
http
image
korrekte ausgabe
methode
null
pixel
problem
start
zeitpunkt
-
Hi,
ich versuche seit geraumer Zeit die genaue Originalweite eines Bildes herauszubekommen, dessen Wert zuvor nicht per width definiert wurde. Dies gelingt weder über das style.width attribut direkt nach dem initialisieren noch in der onload Funktion des Bildes. Hierbei gibt es keine Ausgabe, falls aber zuvor eine width definiert wurde kommt eine korrekte Ausgabe entsprechend der Eingabe. Ich hoffe, dass Alles klar und gut beschrieben wurde. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wenn du den Code mal bei dir einbindest, wird daraufhin folgende Meldung in einem alert erscheinen:!function(a){ a.onload = function(){ alert('Das Bild mit der Adresse :\n'+a.src+'\nist '+a.width+' * '+a.height+' Pixel groß.'); }; a.src = 'http://nemoinho.kilu.de/images/BILD2224.JPG'; )(new Image)
Wie du siehst geht das sehrwohl, das Bild muss nur geladen sein, damit du dieses Eigenschaften abrufen kannst.Das Bild mit der Adresse : http://nemoinho.kilu.de/images/BILD2224.JPG ist 3648 * 2736 Pixel groß.
Mit freundlichen Grüßen -
Hi,
danke für die schnelle Antwort, tatsächlich hat sie mir soweit geholfen festzustellen, dass ich die Weite wie sonst üblich über object.style.width abrufen wollte. Außerdem scheint ein Problem bei der Architektur meines Codes zu liegen, da innerhalb des Tests ein korrekter Wert angezeigt wird, aber sobald die Methode das Bild zurückgibt nicht mehr.
this.mainImageDiv = createDiv("mainImageDiv", "absolute", "0px", "0px", "736px", "400px"); alert("START"); var mainImage = createImg("mainImage", "absolute", "0px", "0px", null, null, "GaleryEGO/BigImages/EGO_Image_3b"); mainImage.onload = function(){ alert(mainImage.width); }; alert("END"); function createImg(id, sPosition, sPosX, sPosY, sWidth, sHeight, sImageName){ var img = new Image(); if(sImageName != null) img.src = "Assets/" + sImageName + ".png"; changeValues(img, id, sPosition, sPosX, sPosY, sWidth, sHeight, sImageName); return img; }
Die Methode ChangeValues dürfte nicht Schuld sein, weil alert auch "0" ausgiebt wenn sie ausgeklammert ist. Momentan ist die Ausgabe "Start" "End" "0" also die Reihenfolge scheint korrekt abgearbeitet und das onload erst zum Zeitpunkt des vollständig geladenen Bildes aufgerufen zu werden, -
Ich habe das gefühl, dass das Problem die null-Werte in der 10 Zeile ( der createImg-Aufruf ) sind, wenn du dort eine style-eigenschaft vergibst wäre 'auto' sicher ein besserer Wert.
Ansonsten kann ich dazu nicht viel sagen, weil ich den Code drumherum nicht kenn, aber in diesem Fragment finde ich so keine groben schnitzer, die einen solchen Fehler wie von dir beschrieben rechtfertigen.
Mit freundlichen Grüßen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage