login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Image resize werkt niet

Offline qubus - 25/07/2005 15:37 (laatste wijziging 25/07/2005 15:38)
Avatar van qubusLid Goedenmiddag,

Ik wil hetvolgende:
Via een formulier kiest iemand een foto. De foto wordt geupload naar een map. Vanuit hier wordt het twee keer verkleind. Een keer naar 200x150 pixels, en een keer naar 500x375 pixels.
(Of 150x200 en 375x500 als de foto rechtop genomen is)
Ik heb de volgende code, en die werkt bijna helemaal goed, alleen bij beide verkleinigen neemt hij alleen de linkerbovenhoek van het orginele plaatje in plaats van het hele plaatje . Heb het meeste van dit script trouwens van deze geweldige site. Beetje aangepast naar mijn wensen
Wat doe ik fout zodat hij niet de hele foto verkleind?
En hoe kan ik de orginele foto die in Temp wordt geupload weer verwijderen als de verkleiningen klaar zijn?
  1. <?
  2.  
  3. // hieronder de test
  4.  
  5. if (isset($_FILES['plaatje1'])) {
  6. $_FILES['bestand'] = $_FILES['plaatje1'];
  7. //de variabellen
  8. $maxsize = 302400; //maximale grote in bytes
  9. $file_name = "tijdelijk"; //naam van de foto
  10. $map = "verslag/temp/"; //mapnaam. Vergeet de / niet op het einde
  11.  
  12. //De groote van het bestand vergelijken met het maximum toegelaten
  13. if ($_FILES['bestand']['type'] > $maxsize){
  14. exit("Je bestand " . $_FILES['bestand']['size'] . " bytes, het maximum toegelaten is " . $maxsize . " bytes");
  15. }
  16.  
  17. //checken of het wel een jpg is
  18. if($_FILES['bestand']['type'] == "image/pjpeg") {
  19.  
  20. //de extensie van het bestand in een variabelle gooien
  21. $x = strtolower(substr($_FILES['bestand']['name'], -3));
  22.  
  23. $n = 0;
  24. // Check of het plaatje al bestaat, zo ja, filename verhogen
  25. while (file_exists($map . $file_name . $n . '.' . $x))
  26. {
  27. $n = $n + 1;
  28. }
  29. $file_name = $file_name . $n;
  30.  
  31. //het bestand verplaatsen naar de opgegeven map en hernoemen naar de opgegeven filenaam
  32. move_uploaded_file($_FILES['bestand']['tmp_name'],$map . $file_name . '.' . $x);
  33. //bestand chmodden(is alleen van belang voor linux webserver)
  34. chmod ($map . $file_name . '.' . $x, 0777);
  35.  
  36. //$width = 100; //maximale breedte, in pixels, van de thumbnail
  37. $thumb = "verslag/thumbs/" . $file_name . '.' . $x; //de map waar de thumbnails in komen(alleen tussen de quotes veranderen)
  38. $groot = "verslag/plaatje/" . $file_name . '.' . $x;
  39. $orig = $map . $file_name . '.' . $x;
  40. //het plaatje gaan verkleinen
  41. $b = imagecreatefromjpeg($map . $file_name . '.' . $x) or die ("Jpg probleempje");
  42. $bx = imagesx($b); //breedte van het orgineel
  43. $by = imagesy($b); //hoogte van het orgineel
  44. if ($bx > $by) { $width = 200;
  45. $widthgroot = 500; }
  46. if ($bx < $by) { $width = 150;
  47. $widthgroot = 375; }
  48.  
  49. $lm = $b;
  50.  
  51. // Kleine plaatje
  52.  
  53. //hoogte uit rekennen
  54. $temp=$bx/$width;
  55. $height=$by/$temp;
  56. //het plaatje gaan maken
  57. $lm1 = imagecreate($width ,$height) or die ("Probleem met maken van plaatje");
  58. //als je geen GD library 2 hebt moet je imagecopyresampled veranderen in imagecopyresized(lagere kwaliteit)
  59. imagecopyresampled($lm1, $lm, 0, 0, 0, 0, $width, $height, $bx, $by);
  60. //80 is jpg kwaliteit maar je kan ook tot 120 gaan of lager dan 80
  61. Imagejpeg($lm1,$thumb,80);
  62. //de troep opruimen
  63. //imageDestroy($lm1);
  64. //imageDestroy($lm);
  65.  
  66. // Groote plaatje
  67.  
  68. $temp=$bx/$widthgroot;
  69. $height=$by/$temp;
  70. $lm = $b;
  71. //het plaatje gaan maken
  72. $lm1 = imagecreate($widthgroot ,$height) or die ("Probleem met maken van plaatje");
  73. //als je geen GD library 2 hebt moet je imagecopyresampled veranderen in imagecopyresized(lagere kwaliteit)
  74. imagecopyresampled($lm1, $lm, 0, 0, 0, 0, $widthgroot, $height, $bx, $by);
  75. //80 is jpg kwaliteit maar je kan ook tot 120 gaan of lager dan 80
  76. Imagejpeg($lm1,$groot,80);
  77. //de troep opruimen
  78. imageDestroy($lm1);
  79. imageDestroy($lm);
  80.  
  81. echo "Het plaatje is succesvol opgeslagen";
  82. //error printen als het geen jpg is
  83. } else {
  84. echo "Het bestands formaat word niet ondersteund.<br> Alleen jpg word toegelaten.";
  85. }
  86. } else {
  87. echo "Kies een plaatje (alleen jpg).";
  88. }
  89.  
  90. ?>
:p 

2 antwoorden

Gesponsorde links
Offline Ontani - 25/07/2005 15:41 (laatste wijziging 25/07/2005 15:43)
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
dit is hetzelfde script van sima aangepast aan mij behoeft.
upload wordt gerisezed naar 800 x 600 opgeslagen als image.jpg
en 100 x 75 opgeslagen als image_thumb.jpg

  1. <?
  2. if (isset($_FILES['bestand'])) {
  3. //De groote van het bestand vergelijken met het maximum
  4. if ($_FILES['bestand']['type'] > 512000){
  5. exit("your file" . $_FILES['bestand']['size'] . " bytes, exited the maximum size of 500KB");
  6. }
  7.  
  8. if($_FILES['bestand']['type'] == "image/jpeg") {
  9.  
  10. $x = strtolower(substr($_FILES['bestand']['name'], -3));
  11. // De naam van de file veranderen in bv. image0
  12. $file_name = "clanwar";
  13. $n = 0;
  14. // Check of file al bestaat, zo ja, filename verhogen
  15. while (file_exists('clanwarShots/' . $file_name . $n . '.' . $x))
  16. {
  17. $n = $n + 1;
  18. }
  19. $file_name = $file_name . $n;
  20.  
  21. move_uploaded_file($_FILES['bestand']['tmp_name'],'clanwarShots/' . $file_name . '.' . $x);
  22. $old_umask = umask(0);
  23. chmod ('clanwarShots/' . $file_name . '.' . $x, 0777);
  24. //kiezen
  25. $b = imagecreatefromjpeg('clanwarShots/' . $file_name . '.' . $x) or die ("problem with jpg creation");
  26. $bx = imagesx($b); // Bron breedte
  27. $by = imagesy($b); // bron hoogte
  28. $lm = $b;
  29. $width=800;
  30. $temp=$bx/800;
  31. $height=$by/$temp;
  32. if ($bx > $width) {
  33. $lm1 = imagecreatetruecolor($width ,$height) or die ("problem with jpg creation");
  34. imagecopyresampled($lm1, $lm, 0, 0, 0, 0, $width, $height, $bx, $by);
  35. Imagejpeg($lm1,'clanwarShots/' . $file_name . '.' . $x,80); //80 is jpg kwaliteit
  36. imageDestroy($lm1);
  37. imageDestroy($lm);
  38. }
  39. $b = imagecreatefromjpeg('clanwarShots/' . $file_name . '.' . $x) or die ("problem with jpg creation");
  40. $bx = imagesx($b); // Bron breedte
  41. $by = imagesy($b); // bron hoogte
  42. $lm = $b;
  43. $width=100;
  44. $temp=$bx/100;
  45. $height=75;
  46. $lm1 = imagecreatetruecolor($width ,$height) or die ("problem with jpg creation");
  47. imagecopyresampled($lm1, $lm, 0, 0, 0, 0, $width, $height, $bx, $by);
  48. Imagejpeg($lm1,'clanwarShots/' . $file_name . '_thumb.' . $x,80); //80 is jpg kwaliteit
  49. imageDestroy($lm1);
  50. imageDestroy($lm);
  51. echo "screenshot for round one added.\n";
  52. } else {
  53. echo "Only jpg allowed";
  54. }
  55. }
  56. ?>
  57. <form action="" enctype="multipart/form-data" method="post">
  58. <input type="file" name="bestand">
  59. <input type="submit" name="submit" value="Upload">
  60. </form>
Offline qubus - 25/07/2005 16:17
Avatar van qubus Lid Bedankt, beetje aangepast en het werkt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s