login  Naam:   Wachtwoord: 
Registreer je!
 Forum

images resizen

Offline kenzo - 23/02/2008 09:28
Avatar van kenzoPHP beginner Hallo,

Ik heb een upload systeem voor maximaal 6 foto's.

Er kan vanalles geupload worden.. (jpg, gif, png etc).


Nu wil ik graag dat alle foto's geresized worden.

Kan dat meteen na het uploaden, en hoe?

Ik kan wel alleen jpg ofzo resizen, maar gif kan dan weer niet.

Ook weet ik niet hoe ik ze alle maximaal 6 in een keer kan doen.

Het kan dus ook dat maar 1, 2, 3, 4, of 5 foto's zijn geupload.



Bedankt!

8 antwoorden

Gesponsorde links
Offline Koen - 23/02/2008 10:04 (laatste wijziging 23/02/2008 10:09)
Avatar van Koen PHP expert PHP.net: imagecreatefromjpeg
PHP.net: imagecreatefromgif
PHP.net: imagecreatefrompng
PHP.net: imagecopyresized
PHP.net: imagegif
PHP.net: imagejpeg
PHP.net: imagepng
?

Enne, je tweede vraag, doe zo:
  1. <input type="file" name="afbeeldingen[]" />

En dan kan je mbv PHP.net: foreach door $_FILES['afbeeldingen'] loopen, en één voor één resizen..
Offline kenzo - 23/02/2008 10:06 (laatste wijziging 23/02/2008 10:16)
Avatar van kenzo PHP beginner misschien,

even kijken

Bedankt alvast!


// edit


Ok, dat snap ik, maar het probleem is dat de 1e afbeelding jpg kan zijn, de 2e png, de 3e gif etc...

Ik had ongeveer zoiets.

Dit werkt niet, kan ook niet, maar ik weet niet hoe ik kan laten zoeken of het jpg is of gif etc... en die dan te laten resizen:

  1. <?php
  2. // File and new size
  3. $filename = 'uploads/1.jpg';
  4. $filename .= 'uploads/1.gif';
  5. $filename .= 'uploads/1.png';
  6. $percent = 0.5;
  7.  
  8. // Content type
  9. header('Content-type: image/jpeg');
  10. header.('Content-type: image/gif');
  11. header.('Content-type: image/png');
  12.  
  13. // Get new sizes
  14. list($width, $height) = getimagesize($filename);
  15. $newwidth = $width * $percent;
  16. $newheight = $height * $percent;
  17.  
  18. // Load
  19. $thumb = imagecreatetruecolor($newwidth, $newheight);
  20. $source = imagecreatefromjpeg($filename);
  21. $source = imagecreatefromgif($filename);
  22. $source = imagecreatefrompng($filename);
  23.  
  24. // Resize
  25. imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  26.  
  27. // Output
  28. imagejpeg($thumb);
  29. imagegif($thumb);
  30. imagepng($thumb);
  31. ?>
Offline Koen - 23/02/2008 10:37 (laatste wijziging 23/02/2008 10:40)
Avatar van Koen PHP expert
  1. <?php
  2. if(isset($_POST['submit']) && $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['afbeeldingen']))
  3. {
  4. foreach($_POST['afbeeldingen'] as $k => $v)
  5. {
  6. if(!empty($v['name'])) {
  7. if(Is_Uploaded_File($v['tmp_name']))
  8. {
  9. if(move_uploaded_file($v['tmp_name'],'uploads/'.$v['name'])) {
  10. $sFile = 'uploads/'.$v['name'];
  11. chmod($sFile, 0755);
  12. $percent = 0.5;
  13. list($width, $height) = getimagesize($sFile);
  14. $newwidth = $width * $percent;
  15. $newheight = $height * $percent;
  16. $sExt = array_pop(explode('.', $v['name']));
  17. $thumb = imagecreatetruecolor($newwidth, $newheight);
  18. switch($sExt) {
  19. case 'gif':
  20. $source = imagecreatefromgif($sFile);
  21. $error = false;
  22. break;
  23. case 'jpg':
  24. $source = imagecreatefromjpeg($sFile);
  25. $error = false;
  26. break;
  27. case 'jpeg':
  28. $source = imagecreatefromjpeg($sFile);
  29. $error = false;
  30. break;
  31. case 'png':
  32. $source = imagecreatefrompng($sFile);
  33. $error = false;
  34. break;
  35. default:
  36. $error = true;
  37. }
  38. if(!$error) {
  39. imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  40. switch($sExt) {
  41. case 'gif':
  42. imagegif($sFile, 'uploads/thumbs/'.$v['name']);
  43. break;
  44. case 'jpg':
  45. imagejpeg($sFile, 'uploads/thumbs/'.$v['name']);
  46. break;
  47. case 'jpeg':
  48. imagejpeg($sFile, 'uploads/thumbs/'.$v['name']);
  49. break;
  50. case 'png':
  51. imagepng($sFile, 'uploads/thumbs/'.$v['name']);
  52. break;
  53. }
  54. chmod('uploads/thumbs/'.$v['name'], 0755);
  55. echo '<img src="uploads/thumbs/'.$v['name'].'" alt="'.$v['name'].'" /><br />';
  56. }
  57. }
  58. }
  59. }
  60. }
  61. } else {
  62. ?>
  63. <form action="<?=$_SERVER['REQUEST_URI'];?>" method="post" enctype="multipart/form-data">
  64. <input type="file" name="afbeeldingen[]" /><br />
  65. <input type="file" name="afbeeldingen[]" /><br />
  66. <input type="file" name="afbeeldingen[]" /><br />
  67. <input type="file" name="afbeeldingen[]" /><br />
  68. <input type="file" name="afbeeldingen[]" /><br />
  69. <input type="file" name="afbeeldingen[]" /><br />
  70. <input type="submit" name="submit" value="Verstuur!" />
  71. <?php
  72. }
  73. ?>


Dit is een begin, ik weet niet of het werkt, heb het niet getest, maar zo moet het er ongeveer uitzien 

Je moet wel zelf eerst deze mappenstructuur aanmaken:
  1. ./uploads
  2. ./thumbs
Offline kenzo - 23/02/2008 10:39 (laatste wijziging 23/02/2008 10:47)
Avatar van kenzo PHP beginner ok, bedankt

zal het proberen!


/// edit


Nog even een vraagje.

Ik heb alles werken (op resize na) van advertenties toevoegen enzo.

Ik gebruik het misschien omslachtig, maar minder werk om het aan te passen.

Ik heb in de database 6 velden:

foto1
foto2
foto3
foto4
foto5
foto6


Is het veel werk om dat zo hierboven aan te passen?

(sorry, ben hier niet goed in)  





En eigenlijk is het niet om thumbnails te maken, alleen om de zelfde foto te verkleinen.

Ik hoef geen thumbnails, maar sommige foto's zijn zo groot dat ik ze een bepaalde grote wil hebben dat er mooi een watermerk op kan
Offline Koen - 23/02/2008 10:52
Avatar van Koen PHP expert verwijder dan de eerste foto's mbv PHP.net: unlink nadat je die verkleinde foto's hebt geupload?
Offline kenzo - 23/02/2008 10:54
Avatar van kenzo PHP beginner ik snap het even niet  


Ik heb een toevoeg forumulier waar ik 6 foto's kan uploaden

foto1
foto2
foto3
foto4
foto5
foto6


Hoe kan ik daar dat resize formulier op toepassen?
Offline Koen - 23/02/2008 12:16
Avatar van Koen PHP expert combineren, zo moeilijk is het toch niet? 
Offline kenzo - 23/02/2008 13:56
Avatar van kenzo PHP beginner Is er misschien een mogelijkheid dat ik in een keer alle afbeeldingen (jpg, gif, png etc) in een map een bepaalde breedte kan geven.

Natuurlijk moet de hoogte dan mee resizen dat hij wel de standaard afmetingen houd (verhoudingsgewijs)


Is dat mogelijk via php bijvoorbeeld

Zo kan ik gewoon iedere dag een bepaald script laten uitvoeren???
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.26s