Hopelijk is de titel duidelijk.
Ik zit met een probleem
Ik heb een website met daarop veel foto's. Maar ik ben niet tevreden met mijn thumbnail script. Zoals het nu gaat, wordt er eerst de volledige foto gegenereerd, en vervolgens weer verkleind.
M.a.w.: De bezoeker merkt er niks van, maar ik merk het wel in mijn bandbreedte.
Deze foto's zitten in een database (MySQL). De table ziet er als volg uit:
Ik upload de foto's dmv het volgende stuk script:
Om de foto te weergeven, gebruik ik het volgende script
Tot nu toe werkt alles prima, foto's uploaden gaat prima, foto's weergeven gaat goed....
Maar nu het resizen
Het volgende script gebruik ik om een thumnail te genereren
Opzicht werkt dit "goed", maar de foto wordt eerst helemaal gemaakt, en vervolgens weer verkleind. Met als gevolg dat er extra bandbreedte wordt gebruikt, wat helemaal niet nodig zou zijn.
En de thumbnail script werkt alleen voor jpeg & png
Is het niet mogelijk om vanuit het thumbnailscript de data direct uit de database te halen en daarvan direct een thumbnail te genereren???
Weet iemand hier een oplossing voor? volgens mij moet het ook mogelijk zijn om gif, bmp en ander formaten te resizen ....
Ik heb echt van alles al geprobeerd. Google gebruikt, de search hier gebruikt... maar ik kan er gewoon niks over vinden. (Of ik moet stekeblind zijn
)
De volgende aanpassingen heb ik geprobeerd, maar werkte niet.
edit: sorry voor de layout !
Ik zit met een probleem
Ik heb een website met daarop veel foto's. Maar ik ben niet tevreden met mijn thumbnail script. Zoals het nu gaat, wordt er eerst de volledige foto gegenereerd, en vervolgens weer verkleind.
M.a.w.: De bezoeker merkt er niks van, maar ik merk het wel in mijn bandbreedte.
Deze foto's zitten in een database (MySQL). De table ziet er als volg uit:
code:
1
2
3
4
5
6
7
8
9
| CREATE TABLE foto ( id int(11) NOT NULL auto_increment, id_kleding int(11) NOT NULL default '0', name varchar(64) NOT NULL default '', type varchar(64) NOT NULL default '', length int(11) NOT NULL default '0', content mediumblob NOT NULL, PRIMARY KEY (id) ) TYPE=MyISAM; |
Ik upload de foto's dmv het volgende stuk script:
code:
1
2
3
4
5
6
7
8
9
10
| /* foto uploaden */ $content = fread($fp,filesize($HTTP_POST_FILES[foto1][tmp_name])); fclose($fp); $sql = "INSERT INTO foto VALUES(0,$last_id,' " . $HTTP_POST_FILES[foto][name] . "', '" . $HTTP_POST_FILES[foto1][type] . "',' " . filesize($HTTP_POST_FILES[foto1][tmp_name]) . "', '" . addslashes($content) . "')"; @mysql_query($sql,$db) or Die(mysql_error()); mysql_close($db); |
Om de foto te weergeven, gebruik ik het volgende script
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <? /* image.php */ if (!empty($id)) { $sql = "SELECT type,length,content FROM foto WHERE id = '$id' LIMIT 0,1"; $result = @mysql_query($sql,$db) or Die(mysql_error()); while ($row = mysql_fetch_array($result)) { Header("Content-Length: " . $row[length] . "\nContent-Type: " . $row[type]); print $row[content]; } mysql_close($db); } ?> |
Tot nu toe werkt alles prima, foto's uploaden gaat prima, foto's weergeven gaat goed....
Maar nu het resizen
Het volgende script gebruik ik om een thumnail te genereren
code:
1
2
3
4
5
6
7
8
9
10
11
| <? $src = ImageCreateFromJPEG('http://www.domein.nl/image.php?id='.$id); $width = ImageSx($src); $height = ImageSy($src); $x = 100; $y = 150; $dst = ImageCreate($x,$y); ImageCopyResized($dst,$src,0,0,0,0,$x,$y,$width,$height); header('Content-Type: image/png'); ImagePNG($dst); ?> |
Opzicht werkt dit "goed", maar de foto wordt eerst helemaal gemaakt, en vervolgens weer verkleind. Met als gevolg dat er extra bandbreedte wordt gebruikt, wat helemaal niet nodig zou zijn.
En de thumbnail script werkt alleen voor jpeg & png
Is het niet mogelijk om vanuit het thumbnailscript de data direct uit de database te halen en daarvan direct een thumbnail te genereren???
Weet iemand hier een oplossing voor? volgens mij moet het ook mogelijk zijn om gif, bmp en ander formaten te resizen ....
Ik heb echt van alles al geprobeerd. Google gebruikt, de search hier gebruikt... maar ik kan er gewoon niks over vinden. (Of ik moet stekeblind zijn
De volgende aanpassingen heb ik geprobeerd, maar werkte niet.
code:
1
2
3
4
5
6
7
| $src = $row[content]; $src = ImageCreateFromJPEG($row[content]); $src = ImageCreateFromJPEG('$row[content]'); etc. |
edit: sorry voor de layout !
[ Voor 7% gewijzigd door iMars op 19-11-2003 23:43 ]