[PHP/GD2] Thumbnails sneller creëren?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik gebruik al tijden hetzelfde thumbnailscript, alleen ik gebruik het nu ook als soort van fotoalbum, en dan heb je dus ~20 foto's op een pagina, en dat moet gewoon snel gebeuren. De originele foto's zijn zo'n 150-200 kb, en dan moet er dus snel een kleine thumbnail gecreërd worden. Het probleem is nu echter dat het maken van een thumbnail gewoon lang duurt. De thumbnails zijn perfect, maar het creëren duurt gewoon te lang. Vraag: Wat zouden jullie verbeteren (als het kan met toelichting) aan volgend script?


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function makeThumb($file) {
    header ("Content-type: image/jpeg");

/* hier stond wat troep voor detecteren welk bestandstype het is ed, en 
errorplaatje bij als het fout gaat, niet van belang. */
    $im = imagecreatefromjpeg($file);

    $sz = 160;
    
    $im_width = imagesx($im);
    $im_height = imagesy($im);

    if ($im_width<=$sz && $im_height<=$sz) {
        $new_width = $im_width;
        $new_height = $im_height;
    }
    else {
        if ($im_width >= $im_height) {
            $factor = $sz / $im_width;
            $new_width = $sz;
            $new_height = $im_height * $factor;
        } 
        else {
            $factor = $sz / $im_height;
            $new_height = $sz;
            $new_width = $im_width * $factor;
        }
    }

    $new_im = imagecreatetruecolor($new_width,$new_height);
    imagecopyresampled($new_im, $im, 0, 0, 0, 0, $new_width, $new_height, $im_width, $im_height);
    imagejpeg($new_im);

    imagedestroy($im);
    imagedestroy($new_im);
}

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Maak thumbnails niet on the fly, maar sla ze van tevoren op. Of gebruik ImageMagick in plaats van GD. GD is gewoon traag op dit gebied, is verder niet veel tegen te doen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Waarom sla de thumbnail ook niet even op als een soort 'cache' ?

Hiermee moet de thumbnail maar een keer gemaakt worden (eventueel laat je dat doen tijdens het uploaden) :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dankje voor de reacties, ik vreesde idd ook al dat het gewoon traag was en daar niks aan te doen was als ik het op deze manier bleef doen ;) Dan ga ik een soort van cache inbouwen.. Nogmaals bedankt :)

Acties:
  • 0 Henk 'm!

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05 22:30

FendtVario

The leader drives Vario!

Ik weet niet wat je verstaat onder 'een soort cache', maar ik denk daarbij aan een tijdelijke opslagplaats. Aangezien jij je thumbnails wil gebruiken voor een fotoalbum, is het dan niet handiger dat je script niet bestandjes maakt van de thumbnails? Het is misschien het handigst als je het script gewoon eenmalig draait om thumbnail te maken voor nieuwe plaatjes, en niet steeds elke keer te controleren of er al thumbs zijn (ligt een beetje aan waar jij de voorkeur aan geeft).

www.fendt.com | Nikon D7100 | PS5


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

FendtVario schreef op zondag 20 februari 2005 @ 21:13:
Ik weet niet wat je verstaat onder 'een soort cache', maar ik denk daarbij aan een tijdelijke opslagplaats. Aangezien jij je thumbnails wil gebruiken voor een fotoalbum, is het dan niet handiger dat je script niet bestandjes maakt van de thumbnails? Het is misschien het handigst als je het script gewoon eenmalig draait om thumbnail te maken voor nieuwe plaatjes, en niet steeds elke keer te controleren of er al thumbs zijn (ligt een beetje aan waar jij de voorkeur aan geeft).
Wanneer je die cache aanmaakt is niet echt relevant denk ik. Het hangt er een beetje vanaf wat je wil. Wil je dat het uploaden sneller gaat, dan maak je die cache aan op het moment dat je de thumb voor het eerst nodig hebt, maar als het uploaden wat langer mag duren, dan doe je het meteen. Die laatste optie is meteen de optie die ik zou kiezen, scheelt ook een hoop vervelend programmeerwerk. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1