login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Foto resizen

Offline Raze - 05/02/2009 11:37 (laatste wijziging 05/02/2009 11:38)
Avatar van RazePHP beginner Hallo,

met eens scriptje plaats ikfoto's in een map en zet ik een link naar deze foto in de database.

Op een andere pagina lees ik de tabel dan uit en plaats ik de link in de <img src="...">. Nu is het probleem het resizen. Ik had eerste geen height en width ingegeven, maar dan toont hij de foto's op ware grootte. Probleem is dat wanneer ik wel een vaste height en width ingeef, sommige foto's totaal onduidelijk zijn omdat deze maten niet bij de foto's passen.

Hoe kan ik dan op een deftige manier foto's resizen. Ik zou wel willen dat enkel de foto op 1 pagina geresized wordt, want, wanneer er op de foto geklikt wordt, moet dan de normale grootte getoond worden.

6 antwoorden

Gesponsorde links
Offline Tuinstoel - 05/02/2009 11:42 (laatste wijziging 05/02/2009 11:44)
Avatar van Tuinstoel PHP expert Je bedoelt thumbnails maken? Of je wilt de originele gewoon verkleinen.
Als dat 2e het geval is kun je gewoon met getimagesize() een heel eind komen.
Als je verkleinde plaatjes wil maken dan zou je gebruik moeten maken van de GD Library. http://nl2.php.net/gd

Nog een linkje: http://nl2.php....ampled.php
Offline Erwt - 05/02/2009 12:41
Avatar van Erwt PHP beginner Je moet bij het uploaden van de foto's eigenlijk een mapje hebben met originele foto's en een mapje met thumbnails.

Thumbnails zijn een kopie van de foto's die je geupload hebt maar dan kleiner zodat je ze 'overzichtelijk' in bijvoorbeeld een fotoalbum of als avatar kunt gebruiken.

Wanneer je zoekt naar thumbnails vindt je veel scripts en om het zelf te doen kan ik je Tuinstoel zijn linkjes aanbevelen.
Offline Diko - 05/02/2009 13:41
Avatar van Diko PHP interesse k zal je een stukje geven dat k laatst heb gemaakt (quick&dirty) maar behoud wel de breedte/hoogte ratio 
  1. <?php
  2. $uploaddir = '/var/www/images/projects/';
  3. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
  4. move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
  5. $max = 100;
  6.  
  7. $file = pathinfo($uploadfile);
  8. $imagetype = exif_imagetype($uploadfile);
  9. switch ($imagetype) {
  10. case IMAGETYPE_GIF:
  11. $img = imagecreatefromgif($uploadfile);
  12. break;
  13. case IMAGETYPE_JPEG:
  14. $img = imagecreatefromjpeg($uploadfile);
  15. break;
  16. case IMAGETYPE_PNG:
  17. $img = imagecreatefrompng($uploadfile);
  18. break;
  19. default:
  20. $img = NULL;
  21. break;
  22. }
  23.  
  24. unset($nimg);
  25. if (imagesx($img) > $max || imagesy($img) > $max) {
  26. if(imagesx($img) < imagesy($img)) {
  27. $new_height = $max;
  28. $new_width = $max / imagesy($img) * imagesx($img);
  29. } elseif (imagesx($img) > imagesy($img)) {
  30. $new_width = $max;
  31. $new_height = $max / imagesx($img) * imagesy($img);
  32. } elseif (imagesx($img) === imagesy($img)) {
  33. $new_height = $max;
  34. $new_width = $max;
  35. }
  36. $nimg = imagecreatetruecolor($new_width, $new_height);
  37. imagecopyresampled($nimg, $img, 0, 0, 0, 0, $new_width, $new_height, imagesx($img), imagesy($img));
  38. }
  39. if(isset($nimg)) {
  40. imagepng($nimg,$uploaddir.$filenamethumb);
  41. } else {
  42. imagepng($img, $uploaddir.$filenamethumb);
  43. }
Offline Raze - 05/02/2009 14:37
Avatar van Raze PHP beginner @Tuinstoel: bedankt voor die laatste link, die is heel handig en ga ik ook gebruiken.

Nu, om even, verder te gaan, heb ik hetzelfde probleem ook bij video's.

Ik wil video's tonen in een flash player op mijn website, en dat gaat goed, maar wanneer ik een overzicht wil maken van de video's, zou ik er ook graag een "screenshot" van de video bij wil, dwz zo een klein fotootje wat meestal het middelste beeld van de video voorstelt (cfr youtube, etc)

Hoe doe je zoiets?
Offline Koen - 05/02/2009 19:04 (laatste wijziging 05/02/2009 19:11)
Avatar van Koen PHP expert http://www.site...mp;id=1580

Is dit wat je zoekt? 

Edit: ik had je laatste post niet meer gelezen.

Google.be: get thumbnail movie al geprobeerd? 
Offline Wim - 05/02/2009 19:15
Avatar van Wim Crew algemeen Met de standaardfuncties lijkt me dit niet mogelijk (heb best wel wat gezocht en blijkbaar ben je niet de eerste die dit wil).

Als je je server zelf beheert kan je dit doen doormiddel van de ffmpeg-php extentie. Deze kan je hier vinden: http://ffmpeg-php.sourceforge.net/

Indien je een shared hosting pakket heeft kan je proberen om via PHP.net: shell_exec een batch- of linuxscript uit te voeren op je server; deze zijn er wel voldoende te vinden op het internet. Let wel op: volgens mij kan het best wel veel systeem resources nodig hebben, je hoster zal dit niet fijn vinden als deze te hoog zijn... Best dus eventjes je hoster contacteren, of eventueel kiezen voor een VPS / Dedicated server...

Groetjes,
Wim
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s