Toon posts:

[PHP] thumbnails pagina erg traag

Pagina: 1
Acties:
  • 132 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een pagina met foto's waarvan dmv PHP automatisch tot thumbnails worden gemaakt. Het idee is dat ik gewoon een map op mijn webserver heb waar ik foto's in kan dumpen die dan direct op internet als thumbnails beschikbaar zijn.
Probleem is nu dat het opbouwen van de pagina erg lang duurt.

Het gaat om: http://staff.science.uva.nl/~brandsma/thmbs/katten

De foto's zijn allemaal minimaal 600kB, dus met 25 foto's is dat toch alweer 7,5MB.
Klopt het dat je met het gebruik van PHP eerst de hele foto binnehaalt en er daarna pas een thumbnail van wordt gemaakt? Want dan begrijp ik ook waarom het zo langzaam gaat om de pagina op te bouwen, 7,5MB heb je niet zomaar binnen, ook niet met ADSL.
Mijn hoop was dat de server er thumbnails van maakte en alleen de thumbnails door zou geven aan de gebruiker, dat zou veel dataverkeer schelen.

Als mijn vermoeden juist is, heeft iemand dan een goede oplossing voor mij?

Verwijderd

Ja, de GD-library, zie deze site. Of maak je hier al gebruik van? Laat eens wat code zien.

edit:
Zo te zien maak je er geen gebruik van. Als ik de source bekijk, dan refereer je bij elk plaatje naar het grote formaat. Alleen met HTML maak je er een 'klein' plaatje van. Bij het maken moet de browser dan natuurlijk wel het complete plaatje (bestand) inlezen.

[ Voor 55% gewijzigd door Verwijderd op 29-07-2003 12:24 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Je maakt geen tumbnails. Je zet alleen de size kleiner, maar verder is het plaatje even groot.

Als ik een plaatje heb van 1024 x 1024, die nu 2 mb groot is.
Vervolgens doe ik [img]"blaatje.jpg"[/img] dan blijft het plaatje nog steeds 2 mb groot.

[ Voor 58% gewijzigd door gorgi_19 op 29-07-2003 12:24 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 13-08 12:34
De tumbnails worden op de server gemaakt. Ik denk dat het eerder een foutje/probleem in je script is. Het resizen van plaatjes (zeker als ze 600KB groot zijn, wat meestal toch wel 2MPixel ongeveer is) kan best lang duren, dus als je dat realtime doet, kan dat wel ff tijd inbeslag nemen op de server.

  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 01-01 15:26

PrinsEdje80

Holographic, not grated...

Wat je met behulp van GD het beste kunt doen is een nieuw bestand aanmaken met daarin de thumbnail, die in grootte dus kleiner is, maar ook de kwaliteit minder is (zeker omdat dit jpeg is en je toch voor het overzicht deze thumbs wil hebben..)

Used to be Down Under... Foto gallery


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ik snap niet precies wat je bedoeld maar dat geeft niet:
- Als je je php-script er thumbnails van laat maken en die door laat sturen, is dat uiteraard een kostbaar gebeuren, 7.5MB aan jpg downloaden en dat verkleinen is iig niet iets dat snel gebeurd.
- Als je alleen maar <img src=... width=...> enzo laat bakken zal je browser de volle 7.5MB moeten downloaden en dat is ook traag.

Oplossingen:
- Maak de thumbnail eenmalig met je php-script en pas als jij ze verwijderd opnieuw, niet elke keer kijken of ie nog voldoet, want dan ben je terug bij af, tenzij je dat echt efficient weet te doen (met md5() ofzo).
- De simpelste is: Maak gewoon thuis/offline de thumbnails en lever die samen met je plaatjes aan je php-script.

  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

Inderdaad GD gebruiken, en als je de load op de server wilt beperken de tumbnails na de eerste keer ff ergens cachen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

AArsgier schreef op 29 July 2003 @ 12:25:
Inderdaad GD gebruiken, en als je de load op de server wilt beperken de tumbnails na de eerste keer ff ergens cachen.
Waarom cachen en niet apart opslaan op disk?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Martin Sturm schreef op 29 juli 2003 @ 12:23:
De tumbnails worden op de server gemaakt. Ik denk dat het eerder een foutje/probleem in je script is. Het resizen van plaatjes (zeker als ze 600KB groot zijn, wat meestal toch wel 2MPixel ongeveer is) kan best lang duren, dus als je dat realtime doet, kan dat wel ff tijd inbeslag nemen op de server.
Nee hoor, kijk maar eens bij zijn voorbeeld link. Zijn php code doet blijkbaar helemaal niks met de plaatjes zelf. Die laat ie waarschijnlijk alleen de directory uitlezen om te kijken welke plaatjes erin staan. De 'thumbnails' zijn gewoon de onveranderde plaatjes uit die directory.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Als je de thumbnails maakt m.b.v. PHP (dus GD), dan hoeft er geen 7.5 mb over de lijn gestuurd te worden, maar alleen maar de grootte van de zojuist gecreerde thumbnails.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

gorgi_19 schreef op 29 July 2003 @ 12:26:
[...]

Waarom cachen en niet apart opslaan op disk?
Appart opslaan op disk is een vorm van cachen ;)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Waarom cachen en niet apart opslaan op disk?
DB-cache, memorycache, diskcache :)

Professionele website nodig?


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

offtopic:
/me vraagt zich af of opmerkingen ook op verzoek getrashed worden? :+

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Janoz schreef op 29 juli 2003 @ 12:28:
Appart opslaan op disk is een vorm van cachen ;)
Maar waarom uberhaupt die moeite met een php-thumbnail-maak-script als je gewoon al op je eigen pc, net voor het uploaden, die thumbnails kan maken?
Scheelt werk, scheelt tijd, scheelt geknoei met php en de kwaliteit zou nog wel eens beter kunnen zijn ook ;)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

ACM: Klopt als een bus. Echter indien anderen ook foto's kunnen uploaden is het wel degelijk een idee om on-demand te thumbnailen.

Professionele website nodig?


Verwijderd

Topicstarter
Ik vind het wel makkelijk om een directory te hebben waarin ik heel simpel een paar plaatjes dan dumpen die dan meteen op internet beschikbaar zijn. Ik heb verschillende plekken waar ik achter de computer zit en niet alle computers hebben programma's om thumbnails te maken. Plus dat het gewoon extra werk is, thumbnails maken, pagina's genereren, links aanmaken, etc. Op zich is het niet zo ernstig, maar het is wel makkelijk om plaatjes gewoon neer te kunnen zetten en te verwijderen.
IK kan natuurlijk ook een directory listing gebruiken, dus dat je alleen alle namen ziet, maar het leek mij wel makkelijk om er thumbnails van te kunnen maken.

IK ben een beginner met PHP en dus is het scritp niet van mijzelf. Ik heb het script wat aangepast. Ik kan nu niet even snel een copy maken van mijn versie maar het origineel is te vinden op http://www.weberdev.com/get_example.php3?count=1432

Verwijderd

Topicstarter
Misschien praktisch om te vermelden:. De webserver is read-only, dus ik heb in een browser geen schrijfrechten op de webserver. Een script dat thumbnails aan wil maken op de server zal dus ook niet werken.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Php is serverside. Een php script wordt op de server uitgevoerd. Deze kan dus best daar schrijven.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
De server is zo geconfigureerd dat de webserver niet kan schrijven, dit ivm security redenen. Alle mappen zijn read-only.

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Als het ook met CHMOD niet te omzeilen is, kan je PHP per ftp de plaatjes laten uploaden naar de localhost.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Verwijderd schreef op 29 July 2003 @ 13:55:
De server is zo geconfigureerd dat de webserver niet kan schrijven, dit ivm security redenen. Alle mappen zijn read-only.
Ga er dan maar vanuit dat je dit probleem niet op kunt lossen. Het on-the-fly resizen van de images kost veel meer tijd dan het downloaden van de full-size image....

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 04-08 13:06

GraasGast

Analogue Heaven

hoeft niet, ligt er aan hoe snel de CPU van de server is...

  • Johnny
  • Registratie: December 2001
  • Laatst online: 21-08 11:56

Johnny

ondergewaardeerde internetguru

GraasGast schreef op 29 July 2003 @ 14:44:
hoeft niet, ligt er aan hoe snel de CPU van de server is...
Of hoe snel de verbinding tussen client en server is :P

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • damouzer
  • Registratie: Oktober 2000
  • Laatst online: 17-08 15:49
Hier vindt je een goed script om je thumbnails weer te geven. http://wnailer.vddh.com/ (wel de GD installeren).

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

3 offtopic reacties verwijderd tbv overzichtelijkheid. uitleg kunt u via mail aanvragen indien geinteresseerd :)

[ Voor 13% gewijzigd door curry684 op 29-07-2003 15:19 ]

Professionele website nodig?


Verwijderd

Topicstarter
Toch even voor alle zekerheid. Hoe kan ik testen of ik met PHP kan schrijven in een directory? Is er ergens een test PHP dingetje voor?

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Verwijderd schreef op 29 July 2003 @ 16:13:
Toch even voor alle zekerheid. Hoe kan ik testen of ik met PHP kan schrijven in een directory? Is er ergens een test PHP dingetje voor?
Zie example 1 in de manual.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 16:14

pietje63

RTFM

Spider.007 schreef op 29 July 2003 @ 14:41:
[...]


Ga er dan maar vanuit dat je dit probleem niet op kunt lossen. Het on-the-fly resizen van de images kost veel meer tijd dan het downloaden van de full-size image....
imagecreatefromjpeg [met resize] in php kost geen 40 seconde; en het uploaden van 600 KB aan data van een foto wel als je maar 16 KB upstream hebt

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 21-08 22:16
ik maak toch naar volle tevredenheid van een eigen tumbnailscript, wat alles razendsnel uitpoept.

er staan nu maar twee plaatjes, maar het is getest met 60 plaatjes op een pagina, en dat gaf geen enkel probleem.

check http://www.bngl.nl/fotoboek/thumbnailer.phps voor mn source

Sometimes you need to plan for coincidence


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

pietje63 schreef op 29 juli 2003 @ 19:58:
[...]

imagecreatefromjpeg [met resize] in php kost geen 40 seconde; en het uploaden van 600 KB aan data van een foto wel als je maar 16 KB upstream hebt
Dat punt werd hierboven ook al gemaakt; mijn opmerking is nogal afhankelijk van de snelheid van je processor; de manier van resizen plus je upload. Ook is het zo dat een resize niet lang kost (bij mij gemiddeld .3 seconden) wat inderdaad korter kan zijn dan het uploaden van de grote image.

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Laat je bij jpg's niet vangen door de grootte van de file, het belangrijkste is de size van het plaatje. Met een heel hoge compressie krijg je de filesize wel klein, maar als GD dat plaatje gaat resizen heeft het wel 2x de hoeveelheid geheugen nodig van de echte image grootte. Als dat dus een 1600x1200 plaatje is met 32bit kleuren informatie, dan kan dat toch een paar 100MB aan RAM worden die je nodig hebt. Als je dan niet genoeg RAM hebt moet je gaan swappen en dan wordt het pas echt traag...

Groentenboer: Overweg eens caching in te voeren, waar je alleen de 1ste keer een thumbnail maakt en die dan gewoon op schijf wegschrijft. Doe ik voor m'n image script en dat werkt super. Als er 10 mensen per seconde je pagina bezoeken wil je die aanpak van jou echt niet meer gebruiken :)

[ Voor 1% gewijzigd door Verwijderd op 30-07-2003 08:08 . Reden: TYPO ]


Verwijderd

Topicstarter
Groentenboer schreef op 29 July 2003 @ 23:11:
ik maak toch naar volle tevredenheid van een eigen tumbnailscript, wat alles razendsnel uitpoept.

er staan nu maar twee plaatjes, maar het is getest met 60 plaatjes op een pagina, en dat gaf geen enkel probleem.

check http://www.bngl.nl/fotoboek/thumbnailer.phps voor mn source
Waarom krijg ik de melding 'file not found'?
Ik heb niets verandert en een paar plaatjes in dezelfde dir gezet.
Zie: http://staff.science.uva.nl/~brandsma/test

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Het script van Groenteboer is meer dan duidelijk. Het is niet de bedoeling dat er een kant en klaar script wordt aangeleverd.

Om te voorkomen dat dit topic verder gaat in een 'neem grifti bij de hand'-topic sluit ik deze dan ook.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.