Image Resize Problem

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Image Resize Problem

Beitrag von Holger »

Hi,

ich nutze ein Script, das in overall_footer.tpl folgendermassen aussieht:

Code: Alles auswählen

<img name="tstimg" width="450" height="1">
<script>
var oimg_width=new Array();
var oimg_height=new Array();
var imgMaxWidth=document.images['tstimg'].width;
var imgLength;
setTimeout("resize_image()",3000);

function resize_image() {
   if (document.images('postimg') && imgMaxWidth>449) {
      if (document.images('postimg').length) {
         imgLength=document.images('postimg').length;
         if (imgLength>0 && imgMaxWidth>0) {
            for (var i=0; i<imgLength && i<10; i++) {
         var imager = document.images('postimg')(i);
               imager.id=i;
               if (imager.width>imgMaxWidth) {
                  update_img(imager);
               } else {
                  imager.onload=update_img;
               }
            }
         }
      } else {
         var imager = document.images('postimg');
         imager.id=0;
         if (imager.width>imgMaxWidth) {
            update_img(imager);
         } else {
            imager.onload=update_img;
         }
      }

   }
}

function revert(evt) {
   var elem = (evt) ? evt.target : ((window.event) ? window.event.srcElement : "")
   var temp;

   temp=elem.width;
   elem.width=oimg_width[elem.id];
   oimg_width[elem.id]=temp;

   temp=elem.height;
   elem.height=oimg_height[elem.id];
   oimg_height[elem.id]=temp;
   elem.onclick=revert;

}
function update_img(evt) {
   var elem = (evt) ? (evt.target ? evt.target : evt) : ((window.event) ? window.event.srcElement : "")
   if (elem.width>imgMaxWidth) {
      oimg_width[elem.id]=elem.width;
      oimg_height[elem.id]=elem.height;
      elem.style.cursor= document.all ? 'hand' : 'pointer';
      elem.title="Klicka på bilden för att se den i originalstorlek!";
     elem.onclick=revert;
      elem.width=imgMaxWidth;
     elem.height=elem.height * imgMaxWidth/elem.width;
   }
}
</script>
In bbcode.tpl:

Code: Alles auswählen

<!-- BEGIN img --><table> 
<tr> 
   <td><img src="{URL}" name='postimg' border="0" /></td> 
</tr> 
<!-- <tr> 
   <td><span class="gensmall">OBS: Bilden visas eventuellt förminskad. Klicka på bilden för att se den i original-storlek<br> Ursprung: {URL}</span></td> 
</tr> -->
</table><!-- END img -->
Die Bilder werden von dem Skript so verkleinert, dass sie an die Breite des Fensters angepasst werden. D.h. das Layout wird nicht zerstört.
Wenn man das Bild anklickt, wird es in Originalgrösse angezeigt (und das Layout wird breiter als der Bildschirm).
Dies funktioniert für Attachments und [img]-Bilder.

ABER: manchmal wird ein Bild nicht verkleinert.
Also, von zehn Bildern werden neun verkleinert. Eins wird in Originalgrösse angezeigt.

Woran kann das liegen?
Dem Server geht der Speicher bei der Berechnung aus?
Odas was anderes?

/Holger
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Es könnte sein, daß das Bild

A. ein unbekanntes Format (Bildtyp) hat
B. nicht korrekt erkannt wird (Bildmaße können nicht ausgelesen werden)

...

Sind den alle 10 Bilder gleich, bzw. gleichen Types?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Es sind ausschliesslich JPG-Dateien.
Die meisten kommen direkt aus der Kamera oder werden in Batches verkleinert, z.B. mit irfanview.
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die "meisten" und der Rest?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Der Rest sind Photoshop-Ausschnitte.
Diese sind meistens viel keiner, können das Layout nicht zerhacken.

Es geht wirklich um direkte Fotos oder verkleinerte Fotos.
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Aber alle Bilder sind dennoch grösser, als die eingestellten Thumbnail Maße?
Das einzigste, was ich mir vorstellen kann, ist, daß PHP die Bildmaße nicht immer korrekt auslesen kann, bzw. falsche Werte zurückbekommt.
Sind es immer wieder vorher verkleinerte Bilder/Bildausschnitte, die das Album nicht will oder ist das willkürlich?
Mit dem Speicher, den PHP zur Verfügung hat, spielt das keine Rolle.
Dann hättest Du schon Fehlermeldungen erhalten.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Es hat nichts mit dem Album zu tun.
Es sind Bilder die per UploadPic oder per Attachment Mod hochgeladen werden, oder per img-bbCode von anderen Servern geholt werden..
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Okay, nicht Album, aber dennoch müssen die Bildmaße lesbar sein, damit sie erkannt und bei Bedarf verkleinert werden können.
Ist das nicht möglihc, also per PHP oder Javascript, "spinnt" die Darstellung.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Ok. :anbet
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Antworten