Image verkleinert ausgeben(Resize)

DelphiDell

Erfahrenes Mitglied
Hallo widermal ;-]

Ich möchte folgendes bewerkstelligen.

In einem Text kommen zb. folgende Tags vor

[img]http://url.de/img[/img]

Und nun zur frage:

wie kann ich mache dass die Url ausgelesen wird(dass wäre dann ja wohl Regex)
Und dass wenn das Bild zb. grösser als 600x400 ;-] ist dass dann das bild verkleinert dargestllt wird.

Ich hoffe ihr versteht was ich meine :rolleyes:

Gruss

DelphiDell :)
 
Zuletzt bearbeitet:
Wenn du jedes einzelne Bild prüfen möchtest, ist das eine ganz schöne Beanspruchung deiner Serverressourcen – eine unnötige. Denn mit CSS ließe sich beispielsweise eine Maximalbreite für Grafik-Elemente zuweisen, die zwar leicht noch nicht von allen Browsern unterstützt wird, aber zusätzlich durch ein JavaScript-Skript unterstützt werden kann, beispielsweise:
Code:
img {
	max-width:		600px;
	max-height:		400px;
}
Code:
window.onload = function() {
	var maxWidth = 600;
	var maxHeight = 400;
	var imgElements = document.getElementsByTagName("img");
	for(var i=0; i<imgElements.length; i++) {
		var imgWidth = imgElements[i].width;
		var imgHeight = imgElements[i].height;
		if( (maxWidth/maxHeight) < (imgWidth/imgHeight) ) {
			imgElements[i].style.width = imgWidth/(imgWidth/maxWidth) + "px";
			imgElements[i].style.height = imgHeight/(imgWidth/maxWidth) + "px";
		} else {
			imgElements[i].style.width = imgWidth/(imgHeight/maxHeight) + "px";
			imgElements[i].style.height = imgHeight/(imgHeight/maxHeight) + "px";
		}
	}
}
 
Re: Image Verkleiner ausgeben(Resize)

Danke Für deine Loesungen. Ich habe es jetzt aber mal mit PHP Probiert.

PHP:
function imageresize($var,$width,$height) 
{
   preg_match('#\[img\](.+)\[/img\]#is', $var, $matches); 
   for($i=0;$i < $matches;$i++)
   {
      getimagesize($matches[$i],$imgsize);
      if($imgsize[0] < $width && $imgsize[1] < $height) 
	  {
	     return  '<img src="'.$matches[$i].'">';   
	  }
	  else if($imgsize[0] > $width && $imgsize[1] < $height)
	  {
	     return  '<img src="'.$matches[$i].'" width="'.$width.'">';
	  } 
	  else if($imgsize[0] < $width && $imgsize[1] > $height)
	  {
	     return  '<img src="'.$matches[$i].'" height="'.$height.'">';
	  } 
      else if($imgsize[0] > $width && $imgsize[1] > $height)
	  {
	     return '<img src="'.$matches[$i].'" height="'.$height.'" width="'.$width.'">';
	  }
	}
}
Aber irgendwie funktioniert es überhaupt nicht, es wird überhauptnichts ausgegenen :mad:

Was ist falsch, ist dass überhaupt der richtige Ansatz
 
Re: Image Verkleiner ausgeben(Resize)

Ganz einfach ich möchte nicht dass meine Homepage zwingend Java Benötigt um ein Gutes Layout zu haben :rolleyes:

Wie wird es denn hier im Forum gemacht
 
Re: Image Verkleiner ausgeben(Resize)

Java wird auch nicht benötigt, wurde auch in keinem Wort erwähnt.
 
Re: Image Verkleiner ausgeben(Resize)

Ich weiss dass ist meine macke ich sage zu JavaScript immer Java ich weiss dass es nicht richtig ist aber sowas bring man fast nichtmer weg :)
 
Re: Image Verkleiner ausgeben(Resize)

Meine Vorschlag – die CSS-Eigenschaften zusammen mit dem JavaScript-Algorithmus – hat den Vorteil, dass dadurch keinerlei zusätzliche Belastungen auf den Webserver zukommen, da alles clientseitig erledigt wird.
 
Re: Image Verkleiner ausgeben(Resize)

Schon ich habe ja beides Probiert nur im Mozilla funktioniert es und im IE Nicht :(

Darum bin ich eher für die PHP lösung die ich soweit auch zum Funktionieren gebracht habe, aber jetzt werden die Bilder nur biss zum 1. Bild ausgegeben 2. Der Text kommt auch nicht.

Hier mein Neuer Quelltext

PHP:
function imageresize($var,$width,$height) 
{
   preg_match('#\[ img\](.+)\[ /img\]#is', $var, $matches); 
   $search = array('[ img]','[ /img]');
   $replace = array('','');
   for($i=0;$i < $matches;$i++)
   {
      $matches[$i] = str_replace($search,$replace,$matches[$i]);
      $imgsize = getimagesize($matches[$i]);
      if($imgsize[0] < $width && $imgsize[1] < $height) 
	  {
	     return  '<img src="'.$matches[$i].'" width="'.$imgsize[0].'">';   
	  }
	  else if($imgsize[0] > $width && $imgsize[1] < $height)
	  {
	     return  '<img src="'.$matches[$i].'" width="'.$width.'">';
	  } 
	  else if($imgsize[0] < $width && $imgsize[1] > $height)
	  {
	     return  '<img src="'.$matches[$i].'" height="'.$height.'">';
	  } 
      else if($imgsize[0] > $width && $imgsize[1] > $height)
	  {
	     return '<img src="'.$matches[$i].'" height="'.$height.'" width="'.$width.'">';
	  }
	}
	return $var;
}
 

Neue Beiträge

Zurück