[PHP] GD thumbnails maken lukt niet

Pagina: 1
Acties:

  • drGoeroe
  • Registratie: Januari 2002
  • Laatst online: 04-09-2021
Oke, mijn probleem is het volgende. Ik ben even aan het testen met GD, en probeer nu van een geuploade file een thumbnail te bakken.

Daarvoor gebruik ik volgende stukje code:
code:
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
    $extensie = str_replace('.','',substr($_FILES['image']['name'],-4));

    if (!move_uploaded_file($_FILES['image']['tmp_name'],
$_SERVER['DOCUMENT_ROOT'].'/graphiatrie/img/'.time().'.'.$extensie))
    {
        exit('Je img kon niet geupload worden :{');
    }

    // img data
    $image = 'img/'.time().'.'.$extensie;
    $size = getimagesize($image);
    $width_h = $size[0]; // hoogte
    $width_w = $size[1]; // breedte
    $source = imagecreatefromjpeg($image);
    $varX = min($width_h, $width_w);

    // maak nwe thumb
    $img = imagecreate(100,100);
    
    // bak beginsize
    if ($width_h > $width_w)
    {
        $y = ($width_h-$width_w) / 2;
        $x = 0;
    } else {
        $x = ($width_w-$width_h) / 2;
        $y = 0;
    }

    // vul thumb
    imagecopyresized($img, $source, 0, 0, $x, $y, 100, 100, $varX, $varX);

    // schrijf thumb weg
    imagejpeg ($img, 'img/th'.time().'.jpg', 100);
    
    echo  'done!';


Dit werkt opzich goed, geen fouten e.d.

Alleen krijg ik zo'n thumbnail als result :o
Afbeeldingslocatie: http://oppergoeroe.com/img/upload/th1029837207.jpg

Dus ben ik van mening dat er enkele waardes niet kloppen en dat de kwaliteit te slecht is.

Wat kan ik hieraan doen?

Thanx in advance _/-\o_

[edit]
Ik doe het maar niet tussen [php] bb code, aangezien dat m'n code nogal verneukt :{

[ Voor 0% gewijzigd door drGoeroe op 20-08-2002 12:07 . Reden: code verneukte layout ]


  • Pjottski
  • Registratie: Maart 2001
  • Laatst online: 01-09 18:05

Pjottski

🦍 Monkey 🦍

En wordt het plaatje nu dan op ware grote getoond of is het plaatje gerezised. Als het plaatje geresized wordt, dan kan het kloppen dat de kwaliteit van het plaatje minder wordt.

Dit is mijn uitspraak en daar zult u het mee moeten doen


  • drGoeroe
  • Registratie: Januari 2002
  • Laatst online: 04-09-2021
Ware grootte. Dit is dus dat 100x100 pixels thumbnail plaatje wat ik met bovenstaande code genereer.

En die klopt dus niet :{

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

je houdt geen rekening met de verhoudingen. botweg 100x100 ergens van maken levert idd dat soort plaatjes op

Doet iets met Cloud (MS/IBM)


  • drGoeroe
  • Registratie: Januari 2002
  • Laatst online: 04-09-2021
D2k schreef op 20 augustus 2002 @ 12:16:
je houdt geen rekening met de verhoudingen. botweg 100x100 ergens van maken levert idd dat soort plaatjes op
Hmm, het moet toch mogelijk zijn om van een willekeurig geupload plaatje een mooie 100x100 pixels thumbnail te maken? of niet?

  • Pjottski
  • Registratie: Maart 2001
  • Laatst online: 01-09 18:05

Pjottski

🦍 Monkey 🦍

Nee, dat is niet mogelijk.

Afbeeldingslocatie: http://oppergoeroe.com/img/upload/th1029837207.jpg

Afbeeldingslocatie: http://oppergoeroe.com/img/upload/th1029837207.jpg

Afbeeldingslocatie: http://oppergoeroe.com/img/upload/th1029837207.jpg

Dit is mijn uitspraak en daar zult u het mee moeten doen


Verwijderd

Bovendien maak je geen gebruik van de functies uit GD >2.0.1, die wel een plaatje mooi kunnen resizen, Deze bijvoorbeeld...

  • drGoeroe
  • Registratie: Januari 2002
  • Laatst online: 04-09-2021
Dan stel ik hem anders. Is het mogelijk om de middelste 100 x 100 pixels van het originele plaatje te nemen en die te vullen in de thumbnail?

Verwijderd

CrAzY_R schreef op 20 augustus 2002 @ 12:21:
[...]

Dan stel ik hem anders. Is het mogelijk om de middelste 100 x 100 pixels van het originele plaatje te nemen en die te vullen in de thumbnail?
Dat zal wel lukken ja...

  • drGoeroe
  • Registratie: Januari 2002
  • Laatst online: 04-09-2021
Verwijderd schreef op 20 augustus 2002 @ 12:23:
[...]
Dat zal wel lukken ja...
Mooi, dan ga ik me even verdiepen in die functie van je. Thanx.

  • Devil N
  • Registratie: September 2000
  • Laatst online: 14-08 16:15
Ik heb een tijdje geleden ook een thumbnail-creatie PHP'tje gemaakt, en die werkt goed. Ik gebruik wel ImageCopyResized, dus de thumbs zijn wel wat pixelig. Anders zou ik ImageCopyResampled moeten gebruiken, maar dat ondersteunt de server niet waar ik m'n spul op zet. Maar goed, dit is de code:

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
function createThumbnail( $filename ) {
  
  list( $width, $height, $filetype, $dummy ) = getimagesize( $filename );

  if ( $filetype != 2 && $filetype != 3 ) { // Limit to JPG or PNG files only
    return FALSE;
  }

  $output = THUMBDIR . $filename;

  $whratio = $width / $height;  
  if ( $whratio > 1.0 ) {   // Width is greater than height
    $newW = THUMBSIZE;
    $newH = THUMBSIZE / $whratio;
  } else {          // Height is greater than or equal to width
    $newW = THUMBSIZE * $whratio;
    $newH = THUMBSIZE;
  }

  $dst = ImageCreate( $newW, $newH );
  if ( $filetype == 2 ) {
    $src = ImageCreateFromJpeg( $filename );
  } elseif ( $filetype == 3 ) {
    $src = ImageCreateFromPng( $filename );
  }

  ImageCopyResized( $dst, $src, 0, 0, 0, 0, $newW, $newH, imagesx( $src ), imagesy( $src ) );

  ImageJpeg( $dst, $output, 75 );

  return TRUE;

}


Constantes:
THUMBDIR is de directory waar de thumbs in neergezet moeten worden (bijvoorbeeld "thumbs")
THUMBSIZE is de maximale lengte of hoogte van de thumbnail (in dit geval 150, dus de thumbs zijn nooit groter dan 150x150)
Pagina: 1