PHP Gallery Script => Thumps generieren

Hannibal

Erfahrenes Mitglied
Ich bin nun soweit, dass ich Bilder hochladen kann, diese folgende Informationen in die Datenbank eintragen und als Name die aktuelle SQL-ID bekommen dann .jpg.

Datenbank:

ID, UploadDate, Description, Sektion

Also nun möchte ich diese Bilder auslesen und daraus Thumps generieren lassen, doch ich möchte die Thumps nicht gespeichert haben, sondern die sollten nur temporär sein.

Könnte mir jemand diesen Code Teil verraten?

Wäre echt cool
Hannibal
 
Dazu bitte ich dich die Suchfunktion zu benutzen. Ich glaube dazu gibt es hier auch schon ein Tutorial. Ich hab selbst zu dem Thema hier schonmal was geschrieben.

Warum sollen denn die Bilder gerade Temporär sein? Sollen die Thumbs bei jedem Aufruf durch den Benutzer erst generiert werden? Wenn ja ist das doch ganz schön langsam.
 
Ja ich denke es wäre besser, weil ich dann nicht dauernd den Space benutze, für Bilder, welche keiner ansieht oder nicht?

Sonst wäre es ja sowieso schlauer die Bilder schon als Vorschau zu generieren wenn das Bild hochgeladen wird.

Also ich hätte es lieber mal mit temporär versucht, und dazu hab ich nocht nichts gefunden.
 
Also ich rate dir von dem temporären Ding ab, da es doch einige zeit kostet das ganze zu berechnen, ergo lange Ladezeit.

Wenn du das trotzdem machen willst, kannst du es doch so machen, dass die Thumbs beim Aufruf generiert werden.
Das löschen kannst du per Cronjob ermöglichen.
Oder du nutzt dazu eine JavaScript Funktion, ich habe sie noch nicht benutzt, weiss auch nicht genau, wie sie heisst, aber damit kann man etwas ausführen, wenn der Browser geschlossen wird, dazu solltest du mal googlen oder im JS Forum nachfragen.

Naja, ist schon etwas komisch deine Anforderung, also ich würde dir davon abraten ;)
 
Nein Ok, wenn es so abwegig ist dann werde ich es natürlich mit "fixen" thumbs machen, das andere scheint wirklich blöd zu sein.

Ich ging nur davon aus, dass wenn ich bilder sektionen habe mit bildern die villeicht nur selten genutz werden dass es nicht sinnvol wäre von diesen bildern auch thumbs zu haben, aber dass wird wohl nicht so viel platz brauchen

und wenn so 10-20user in den bildern sind, dann wäre das auch dumm wenn der server probleme damit bekommt :D

also dann bin ich nun auf der suche nach einer schlauen methode das ganze mit thumbs beim speichern zu machen.
 
naja "behandelt"

eigentlich läuft es immer darauf hinaus dass einem eh nicht geholfen wird und man wo anders sucht..

so isses halt:rolleyes:
 
Meinst du damit, dass wir dir hier dir Lösung vorkauen sollen, wenn sie iregndwo anders vorhanden ist?
Ich seh den Sinn darin nicht so ganz, wenn du die Suchfunktion nutzt wirst du auf duzende Scripts stoßen, die die Funktionen enthalten die du brauchst.

Da ich deine Zeit nicht überanspruchen möchte und es gleich auf den Punkt bringen will, habe ich dir meine Funktionen die ich zur Thumb Erstellung benutze einfach mal hier reingestellt:

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;
	}

Sollte dir das nicht helfen, :suchen: :rolleyes:
 
Zuletzt bearbeitet:
als Anmerkung, da imagecreatetruecolor() sowieso erst ab GD 2.01+ funktioniert, bietet es sich dann auch an imagecopyresampled zu nehmen statt copyresized für eine bessere Bildqualität.
Ab GD < 2.01 geht nämlich nur imagecreate (ohne truecolor).
 
Zurück