PHP Gallery Script => Thumps generieren

ok vielen dank dass ihr mir so mit code und so entgegen kommt das ist wirklich nett. nun hab ich mir die lösung aber entgültig nochmal überlegt.

ich möchte beim bildupload das orginalbild abspeichern und ein kleines sagen wir 60-70px thumb..
dann wenn der user auf ein thumb klickt kommt ein neues fenster in dem aber ein erst generiertes thumb 640x480 des grossen bildes ist.. so dass wenn er es ganz gross will, er nochmal klicken muss

versteht ihr wie ich meine?

dann hätte ich die thumbs schnell und auch das orginalbild gespeichert, aber falls der user ein bild ansehen wil hat er untendran noch genug platz um die beschreibung zu sehen.

wie müsste ich so ein bild flüchtig speichern?
 
Original geschrieben von Lars Michelsen
PHP:
function getext($str) 
	{
		$i = strrpos($str,".");
		if(!$i)
		{ 
			return ""; 
		}
		$l=strlen($str) - $i;
		$ext=substr($str,$i+1,$l);
		$ext=strtolower($ext);
		return $ext;
	}

function thumb($path, $bild, $newfilename)
	{
		$size=getimagesize($path.$bild);
		$ext=getext($path.$bild);
		$breite=$size[0];
		$hoehe=$size[1];
		$neueBreite=130;
		$neueHoehe=intval($hoehe*$neueBreite/$breite);
		if($ext=="gif")
		{
			$altesBild=ImageCreateFromGIF("$path"."$bild");
			$neuesBild=ImageCreate($neueBreite,$neueHoehe);
			ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite, $neueHoehe,$breite,$hoehe);
			ImageGIF($neuesBild,"$path"."$newfilename");
			return true;
		}
		if($ext=="jpg")
		{
			$altesBild=ImageCreateFromJPEG("$path"."$bild");
			$neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
			ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite, $neueHoehe,$breite,$hoehe);
			ImageJPEG($neuesBild,"$path"."$newfilename");
			return true;
		}
		return false;
	}

Optimalerweise sollte der Dateityp nicht anhand der Extension bestimmt werden, sondern anhand des Dateiheaders, also per getImageSize. Das ist zuverlässiger, denke ich mal. :)

Johannes
 
Zurück