Bäumler: Bilder werden mit falschen Abmessungen angezeigt

Hallo allerseits,

ich komme bei einem Problem nicht weiter und hoffe hier die Lösung zu finden:
Ich richte auf der Intranetseite unseres Unternehmens ein Fotoarchiv ein. Dazu lade ich in einen Frame via Indexdatei zwei Dateien: eine mit Auswahlmenü für die Fotoserien und eine die die gewählte Fotoserie anzeigt. Die "Auswahldatei" enthält zusätzlich zwei Schaltflächen zum "Blättern"; bei onClick auf eine der beiden Schaltflächen wird die jeweilige Funktion "next" bzw. "back" in der "Bildanzeigedatei" aufgerufen. Die Funktionen entfernen das Bild aus der "Bildanzeigedatei" und fügen ein neues ein.

Hier das Machwerk:

<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>triathlon02</title>
<meta name="author" content="Bäumler">
<link rel="stylesheet" href="../../css/font.css" type="text/css">
<script type="text/javascript">
<!--
var counter = 2; //erstes Bild wird bereits beim laden angezeigt
var menge = 37; //anzahl der Bilder im Verzeichnis
var path = "../../pix/diashow_triathlon02/"  //Pfad zum Verzeichnis

function next()
{
 if(counter < menge)
     counter++;
 else
     counter = 1;

document.getElementById("absatz").removeChild(nodename=document.getElementById("absatz").firstChild);
 nextpix = new Image();
 nextpix.src = path + counter + ".jpg";
 nextpix.border = 0;
 document.getElementById("absatz").appendChild(nextpix);

window.status = "Bild " + counter + " von " + menge;
}

function back()
{
 if(counter > 1)
     counter--;
 else
     counter = menge;

document.getElementById("absatz").removeChild(nodename=document.getElementById("absatz").firstChild);
 lastpix = new Image();
 lastpix.src = path + counter + ".jpg";
 lastpix.border = 0;
 document.getElementById("absatz").appendChild(lastpix);

window.status = "Bild " + counter + " von " + menge;
}
-->
</script>
</head>
<body topmargin="1" leftmargin="0">
<div align="center" id="absatz"><img src="../../pix/diashow_triathlon02/1.jpg" border="0"></div>
</body>
</html>

Problem ist jetzt folgendes:
Als Firmenstandard ist der IE ab 5.0 eingesetzt und dieser zeigt bei manchen Bilder selbige in einer falschen Größe an. Netscape 6.2 und Mozilla 1.0 machen keine Probleme. Interessanterweise tritt auch noch folgendes auf: Nehmen wir an, Bild 3 wird in einer falschen Größe angezeigt, ersetze ich dieses Bild Nummer 3 durch ein anderes, dann wird dieses andere Bild auch in einer falschen Größe angezeigt.
Jetzt bleibt mir nur die alte Frage: Bug oder Feature?
Oder liegt der Hund im Cache begraben?

Währe schön wenn mir jemand Erleuchtung einhauchen könnte.
Ansonsten müßt ich Fotoserien mit z.T. 500 Bildern via Fotomontage in lauter gleich große Bilder ...

Danke im voraus

  1. Das Problem liegt hier wahrscheinlich daran, dass das nächste Bild immer die Größe des ersten Bildes haben, gell?
    Versuchs mal damit, indem du
    document.all.absatz.innerHTML="<img src=""+src"" border="0">";
    angibst.
    Damit wird dem <div>-Tag immer ein neuer Quelltext übergeben (innerHTML), der auch veranlasst die Bildgröße neu zu laden.

    Marc Reichelt || www.marcreichelt.de
    Rückfragen bitte an:

    1. Hallo Marc,
      danke für die prompte Antwort!

      Das Problem liegt hier wahrscheinlich daran, dass das nächste Bild immer die Größe des ersten Bildes haben, gell?

      Ja und Nein. Ich denke zu wissen auf was Du hinaus willst: der IE ändert lediglich den Pfad des Objektes, ohne die anderen Eigenschaften mit zu ändern (genau wie wenn man es mit "document.pic.src='xxx.jpg';" probiert). Aus diesen Grund habe ich es auch damit versucht, zuerst das ganze Objekt zu löschen, dann ein neues anzulegen und erst danach in das Dokument zu hängen.
      Auch mit dem Versuch, erst alle Bilder als einzelne Objekte beim laden der Datei in ein Array zu füllen und den Bildertausch via Indexzugriff auf das Array vorzunehmen hatte das identische Ergebnis: immer die selben Bilder werden mit einer falschen Grösse angezeigt.

      Mit falscher Grösse meine ich: Bild Nr.1 hat 500x375px, Bild Nr.2 ebenfalls. Nr.2 wird aber mit 1600x1200px angezeigt. Was natürlich weniger prickeld aussieht, da ja nur die Pixel aueinander gezogen werden. Läßt man sich die Eigenschaften (Rechtsklick) des Bildes anzeigen steht da wirklich 1600x1200px. Hat es aber nicht (alle Bilder haben 500x375px). Klickt man sich weiter durch die Fotoserie, dann werden manche richtig angezeigt und andere mit den genannten 1600x1200px. Aber immer die selben Fotos werden falsch dargestellt; scheint also System zu haben.

      Interessant ist: die Bilder waren ursprünglich 1600x1200px groß. Ich habe sie mittels Photoshop+Skript auf die genannten 500x375px verkleinert. Das brachte mich auf die Idee es könnte ein falscher Eintrag in einem Dateiheader sein. Also las ich mich grob in den JPEG-Standard ein. Was mich nicht wirklich weiter brachte. Ich weis zwar nun, dass Farbsubsampling doch nicht unnütz ist (was wir schon immer vermutet hatten ;) ) habe aber nichts über eventuelle Headereinträge gefunden - auch das durchsuchen der Bilddateien selbst blieb erfolglos.

      Gegen solche Annahmen steht auch folgendes: nur IE macht diese zicken. NS 6.2 und Mozilla 1.0 zeigen alles so wie es sein sollte. Der DOM Inspector von Mozilla (super Teil!) zeigt auch alles im grünen Bereich.

      Wie dem auch sei: ich werde Deinen Ansatz mal ausprobiern. Am Montag. Entspannt.

      Robert Bäumler

      1. Moin!

        Mit falscher Grösse meine ich: Bild Nr.1 hat 500x375px, Bild Nr.2 ebenfalls. Nr.2 wird aber mit 1600x1200px angezeigt. Was natürlich weniger prickeld aussieht, da ja nur die Pixel aueinander gezogen werden. Läßt man sich die Eigenschaften (Rechtsklick) des Bildes anzeigen steht da wirklich 1600x1200px. Hat es aber nicht (alle Bilder haben 500x375px). Klickt man sich weiter durch die Fotoserie, dann werden manche richtig angezeigt und andere mit den genannten 1600x1200px. Aber immer die selben Fotos werden falsch dargestellt; scheint also System zu haben.

        Wenn die Bilder alle eine einheitliche Größe haben - warum tauschst du dann nicht ganz simpel, wie es seit Generationen von Browsern gut funktioniert, einfach document.images[...].src aus und legst als Startbild eines fest, welches die gleiche Größe hat wie alle anderen?

        - Sven Rautenberg

        --
        Diese Signatur gilt nur am Freitag.
    2. Hi!
      Ich möchte nicht unverschämt sein, aber sowas gehört nicht in ein Forum:

      Rückfragen bitte an:

      Grüße, Bürgle (...der auch was wissen will :) )