Bild verkleinern

Zufallsbild auswählem:
PHP:
function randomPicture(){
	global $db,$tpl;
	$i = 0;
	$db->query("SELECT pictureName,pictureDescription,pictureFile,pictureCtime,pictureAuthor FROM pictures");
	while(list($pictureName,$pictureDescription,$pictureFile,$pictureCtime,$pictureAuthor) = $db->data()){
		$pictureCtime = formatdate($pictureCtime,"d.m.Y");
		$prePictureFile = /*scaleImage(*/$pictureFile /*)*/;
		eval("\$rpicture[\"".$i."\"] .= \"".$tpl->get("rpicture")."\";");
		$i++;
	}
	srand((double)microtime()*1000000); 
	$a = rand(0,count($rpicture)-1);
	return $rpicture[$a];
}

rpicture.tpl
HTML:
<p><table border="0" cellpadding="1" cellspacing="1" bgcolor="#000000" width="120">
<tr bgcolor="#C0C0C0">
	<th>Zufallsbild</th>
</tr>
<tr bgcolor="#CCCCCC">
	<td align="center">$pictureName<br><a href="JavaScript:open('test.htm')" target="_blank"><img src="$prePictureFile" alt="$pictureName, $pictureAuthor vom $pictureCtime" border="0" width="110" height="100"></a></td>
</tr>
</table></p>

Mehr gibts da ja nicht;D, also da ich jetzt das erste mal mit Bildern arbeite möchte ich mal wissen wie ich so ein Bild verkleiner und es Abspeicher?
 
Abspeichern kannst du mit [phpf]imagejpeg[/phpf], wenn Du einen Dateinamen mit angibst. Bei jedem Aufruf der Funktion prüfst Du, ob das Thumbnail schon existiert ([phpf]file_exists[/phpf]). Ist dem nicht so, erzeugst Du es und speicherst es. Immer machst Du danach, ob erzeugt oder schon vorhanden, die Ausgabe der Datei. D.h. entweder liest Du sie ein ([phpf]file_get_contents[/phpf]) und gibts sie aus der Funktion zurück, oder Du gibst sie direkt aus [phpf]fpassthru[/phpf], natürlich nicht den [phpf]header[/phpf] vergessen.

Naja, am verkleinern arbeiten wir ja gerade ;)
$rpicture[$a] übergibst Du am Ende also an Deine Funktion? Und das ist ein Dateiname?
Wieso weißt Du $new etwas zu? Damit passiert doch gar nix?
Außer dem auskommentierten Aufruf sehe ich nicht, wo Du scaleImage aufrufst.

BTW:
[phpf]imagecreatetruecolor[/phpf] statt [phpf]imagecreate[/phpf] und [phpf]imagecopyresampled[/phpf] statt [phpf]imagecopyresized[/phpf] produzieren schönere Ergebnisse, funktioniert aber nur wenn Du die GD 2 hast. Kannst Du aber ganz leicht testen (wenn das Skript erst mal läuft), indem Du die Aufrufe einfach änderst, die Parameter sind dieselben.
 
Zurück