Nein genau das braucht dann halt lange, man es aber durch Javascript erledigen lassen, also erst beim Client auf dem PC.
Dazu müsstest du eine Datei erstellen include/includes/js/resizeImages.js
function addonloadEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+, NS6 and Mozilla
// By Scott Andrew
{
if (elm.addEventListener){
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent){
var r = elm.attachEvent("on"+evType, fn);
return r;
} else {
alert("Handler could not be removed");
}
}
addonloadEvent(window, "load", erstAmEndeLaden);
function erstAmEndeLaden () {
ResizeBBCodeImages();
}
//Funktion die alle Bilder des BBCodes der Funktion SetSize übergibt
function ResizeBBCodeImages() {
imgs = document.getElementsByTagName("img");
for (ti=0;ti<imgs.length;ti++) {
if (imgs[ti].className.indexOf("bbcode_image") != -1) {
SetSize(imgs[ti]);
}
}
}
//Funktion zum Ändern der Bildgröße für zu große Bilder
function SetSize(img){
var maxw = 700;
var w = img.width;
var h = img.height;
var toChange = false;
if (w>maxw) {
h = maxw * h / w;
w = maxw;
toChange = true;
}
if (toChange) {
var src = img.getAttribute('src');
if ( img.parentNode.nodeName.toLowerCase() == 'a' ) {
img.setAttribute('width',w);
img.setAttribute('height',h);
} else {
var ersatz = document.createElement('a');
ersatz.setAttribute('href',src);
ersatz.setAttribute('target','_blank');
var newImg = document.createElement('img');
newImg.setAttribute('src',src);
newImg.setAttribute('width',w);
newImg.setAttribute('height',h);
newImg.setAttribute('border','0');
ersatz.appendChild(newImg);
img.parentNode.replaceChild(ersatz,img);
}
}
}
und dabei die Breite für dein Design anpassen, also in dieser Zeile die maximal Breite für Bilder angeben.
var maxw = 700;
Weiter muss diese Datei dann in dein Design eingebunden werden, dazu die index.htm deines Designs editieren, und über </head> folgende Zeile einfügen.
<script type="text/javascript" src="include/includes/js/allg.js"></script>
Zu guter letzt ist dann halt noch die Funktion, die schon geändert wurde nochmals zu ändern, hier mal die komplette Funktion. (in der includes/func/bbcode.php)
function bbcode_images ($s) {
preg_match_all('/\[img\](http|https):\/\/([^\ \?&=\#\"\n\r\t<>]+)\.(gif|jpeg|jpg|png)\[\/img\]/Ui',$s,$imgRs);
if ( isset ($imgRs[0][0]) ) {
for($i=0;$i<count($imgRs[0]);$i++) {
$imgstr = $imgRs[1][$i].'://'.$imgRs[2][$i].'.'.$imgRs[3][$i];
$er = '<img class="bbcode_images" style="border: none;" src="'.$imgstr.'" />';
$s = str_replace($imgRs[0][$i],$er,$s);
}
}
return($s);
}