login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Thumbnail maken van grote jpg bestanden

Offline sanderrebry - 12/09/2012 16:18 (laatste wijziging 16/09/2012 15:03)
Avatar van sanderrebryLid Beste,

Momenteel schrijf ik een script dat grote bestanden upload via SWF...
Van de originele bestanden wordt een thumbnail gemaakt op de webserver.
De originele bestanden worden weggeschreven naar onze externe FTP-server.
Dit werkt perfect,alleen bij grote bestanden van 60mb en groter (jpg) maakt hij geen thumbnail... Hoe zou dit komen en welke oplossing bieden jullie hiervoor ?

  1. function ThumbFoto($fileSrc,$name)
  2. {
  3. $order_id = $_GET['get'];
  4. $thumb_width = 150;
  5.  
  6.  
  7.  
  8. // Determining file extention
  9. $ext = strtolower( substr($fileSrc, strrpos($fileSrc, ".")) );
  10. if($ext == ".png") {
  11. $base_img = ImageCreateFromPNG($fileSrc);
  12. } else if(($ext == ".jpeg") || ($ext == ".jpg")) {
  13. $base_img = ImageCreateFromJPEG($fileSrc);
  14. } else if($ext == ".gif") {
  15. $base_img = ImageCreateFromGIF($fileSrc);
  16. }
  17.  
  18. // If the image is broken, skip it?
  19. if (!$base_img) {
  20. return false;
  21. }
  22.  
  23. // Get image sizes from the image object we just created
  24. $img_width = imagesx($base_img);
  25. $img_height = imagesy($base_img);
  26. $new_height = $img_height / ($img_width / $thumb_width);
  27. // Working out thumb height
  28. //$ratio = $img_height / $img_width;
  29. //$thumb_height = $thmb_width * $ratio;
  30.  
  31. $thumb_img = ImageCreateTrueColor($thumb_width, $new_height);
  32. ImageCopyResampled($thumb_img, $base_img, 0, 0, 0, 0, $thumb_width, $new_height, $img_width, $img_height);
  33.  
  34.  
  35. if( $ext == ".png" ) {
  36. ImagePNG($thumb_img,"thumbs/".$order_id.$name);
  37. } else if (($ext == ".jpeg") || ($ext == ".jpg")) {
  38. ImageJPEG($thumb_img, "thumbs/".$order_id.$name);
  39. } else if ($ext == ".gif") {
  40. ImageGIF($thumb_img, "thumbs/".$order_id.$name);
  41. }
  42.  
  43.  
  44. // Clean up our images
  45. unlink($thumb_img);
  46. ImageDestroy($base_img);
  47. ImageDestroy($thumb_img);
  48.  
  49.  
  50.  
  51. }


  1. if($upload)
  2. {
  3. $query = mysql_query("INSERT INTO printtoplate_bestelling (bestand,order_id) VALUES ('".$targetFile."','".$order_id."')");
  4.  
  5. $contents = ftp_nlist($conn_id, $map."/".$order_id);
  6.  
  7. foreach ($contents as $value)
  8. {
  9.  
  10. $ext = pathinfo($value);
  11. $new_ext = $ext['extension'];
  12. $exten = strtolower($new_ext);
  13. if($exten =='jpg' || $exten =='png' || $exten =='jpeg') // aanmaken van thumbnails
  14. {
  15.  
  16. ThumbFoto("***/temp_files/".$order_id."/".$value,$value);
  17. mysql_query("UPDATE printtoplate_bestelling SET tmp_bestand='".$order_id.$value."' WHERE bestand='".$value."'");
  18. }
  19. else{
  20. mysql_query("UPDATE printtoplate_bestelling SET tmp_bestand='".$order_id.$value."' WHERE bestand='".$value."'");
  21. }
  22.  
  23. }
  24.  
  25.  
  26. }

6 antwoorden

Gesponsorde links
Offline Martijn - 13/09/2012 09:50 (laatste wijziging 13/09/2012 09:51)
Avatar van Martijn Crew PHP Krijg je meldingen terug van PHP? Zo niet, dan denk ik dat je een memory exausted krijgt, oftewel je afbeelding is te groot. 
Offline sanderrebry - 13/09/2012 10:37
Avatar van sanderrebry Lid Ik krijg geen foutmelding, oké te groot maar wat kan ik hieraan doen ? Afbeeldingen van 300mb kunnen niet verkleint worden naar een thumbnail ? Er moet toch een manier zijn ?
Offline UpLink - 13/09/2012 10:54
Avatar van UpLink ... Afbeeldingen van 300MB?  

Als er effectief zulke grote afbeeldingen zijn, moet je in je apache instellingen de grootte aanpassen. Weet niet van buiten wat de standaardgrootte is, maar 300MB gaat er in iedergeval ver over.

Een andere oplossing is een programma als photoshop waar je gemakkelijk je foto's kan resizen en ook ineens een stuk kleiner is in bestandsgrootte...
Offline Martijn - 13/09/2012 12:33
Avatar van Martijn Crew PHP Waar maak je een thumbnail van, een afbeelding formaat huis? mogelijk moet je daar eerst iets aan doen, want ook 300mb uploaden is wel heel erg veel, geeft alleen maar ruimte tot een fout

Tenzij het moet, dan houd het op, maar als je er van uit gaat dat elke pixel van een jpg 24byte kost... Ik weet niet of het voor internet is, maar mogelijk is je 300mb foto een 300 dpi foto, internet is 72dpi, dat gaat al een kilometer schelen
Offline sanderrebry - 13/09/2012 12:46
Avatar van sanderrebry Lid Ik weet dat er systemen zijn die kleine foto's kunnen maken van grote jpg bestanden.
De bedoeling is eigenlijk om een klein preview foto weer te geven van dit beeld.
Mvg,
Sander Rebry
Offline Martijn2008 - 13/09/2012 14:55
Avatar van Martijn2008 PHP beginner In het php.ini bestand kun je misschien meer geheugen toewijzen en de uitvoertijd van PHP verhogen. Mogelijk kom je daar iets verder mee, maar 300 MB voor een foto is wel erg veel inderdaad (@Martijn).
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s