Abend zusammen,
ist es empfehlenswert, wenn man zb eine Gallerie hat und die eigl. Bilder zuerst mit nen Thumbnail darstellen möchte, dass man diese mit PHP verkleinert und den Link ebenfalls in der DB speichert (Ladezeit) ?
Oder verkleinert der Browser diese z.B. proportional (die Höhe), wenn man folgendes angibt ? :
<img src="bild.png" width="150px" />
anstatt den Link zum verkleinerten Bild
Danke für jede Antwort!
mfg
Hallo,
Die Frage ist immer für was genau. Das Problem wenn Du es über den "width" pseudo verkleinerst, aber zulässt das man 20 MIO Pixel (8-12Mb Gross) hochladen kann - so wird die Ladezeit künstlich verlängert.
Diesbezüglich würde ich via PHP das auf ein Thumbnail (150px) und vielleicht sogar noch ein preview Bild (~500px) rendern lassen. Platz mässig macht es wenig aus.
Ein Beispiel welches es wohl einfcher Darstellt: [Link:
Registrierung erforderlich]
---
Wenn Du aber eh nur schlechte Sourcen bekommst, welche eh nicht viel Grösser sind, dann kannst Du es gut via "width" pseudo verkleinern.
Ich hoffe Dir hilft das ein wenig Weiter.
ja, es handelt sich um größere Bilder
danke dir
edit :
Nun lädt er nichts hoch, woran kann das liegen ? :/
if(isset($_POST['upload']))
{
mysql_connect("localhost", "root", "pw");
mysql_select_db("flipspot");
$Nickname = $_POST["Nickname"];
$UserID = $_POST["UserID"];
$titel = $_POST["titel"];
$beschreibung = $_POST["beschreibung"];
/* neuen Bildnamen festlegen */
$fn = $_FILES["img"]["name"];
$fn_teile = explode(".", $fn);
$fn_endung = $fn_teile[count($fn_teile) - 1];
$fn = "show_" . date("YmdHis") . "." . $fn_endung;
/* Bild in die DB einfügen und kopieren und speichern */
copy($_FILES["img"]["name"], $fn);
mysql_query("insert into showroom (Titel, Beschreibung, UserID, Nickname, Bildlink)"
. " values ('$titel', '$beschreibung', '$UserID', '$Nickname', '$fn')
");
/* Original Bildgröße ermitteln */
$info = getimagesize($fn);
$width_alt = $info[0];
$height_alt = $info[1];
/* neue Bildgröße festlegen */
$width_neu = 150;
$height_neu = ceil($height_alt * $width_neu / $width_alt);
/* Bildobjekt erzeugen */
$im_alt = imagecreatefromjpeg($fn);
$im_neu = imagecreatetruecolor($width_neu, $height_neu);
/* Bild in neue Größe kopieren und speichern */
imagecopyresampled($im_neu, $im_alt, 0, 0, 0, 0, $width_neu, $height_neu, $width_alt, $height_alt);
imagejpeg($im_neu, "../upload/showroom/" . $fn);
imagedestroy($im_alt);
imagedestroy($im_neu);
}
bin weiterhin für jede Hilfe dankbar!
edit2: gefixt! "tmp_name" anstatt "name"
Neues PRoblem : Er zeigt mir als verkleinertes Bild nur nen schwarzen Kasten an :/
dieses ist nun auch gefixt
neues hat sich aufgetan :
Wie kann ich bei einer while Schleife, in der ich alle DB Einträge auslese, nach jeden dritten Eintrag zb einen Befehl ("echo" zum Beispiel) eintragen ?