login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zwarte thumbnails

Offline sjemmie - 21/05/2005 19:46 (laatste wijziging 22/05/2005 12:56)
Avatar van sjemmieNieuw lid Wat doe ik hier fout ?
Zodra ik bestanden upload en er thumbnails van probeer te maken blijken ze zwart te zijn 

  1. <? $file = $pad.$doelbestandsnaam;
  2. $tempfile = $pad.'s'.$doelbestandsnaam;
  3. $newfile = $pad.'t'.$doelbestandsnaam;
  4. copy($file, $tempfile); //nieuw bestand aangemaakt
  5. //resize tijd
  6.  
  7. // Load
  8. list($width, $height) = getimagesize($file);
  9. $thumb = imagecreatetruecolor(100, 100);
  10. $source = imagecreate(100,100);
  11.  
  12. // Resize
  13. imagecopyresized($thumb, $source, 0, 0, 0, 0, 100, 100, $width, $height);
  14. $file2 = $file .'.tmp';
  15. imagejpeg($thumb, $file2);
  16. rename ($file2,$newfile);
  17. if (file_exists($tempfile)) { unlink ($tempfile); }
  18. echo "<br>Het bestand ".$_FILES['afbeelding'.$i]['name']." is toegevoegd.";
  19.  
  20. }
  21. ?>

18 antwoorden

Gesponsorde links
Offline TFOL - 21/05/2005 20:07 (laatste wijziging 21/05/2005 20:07)
Avatar van TFOL PHP beginner zet is error_reporting(E_ALL); bovenaan in je script, misschien geeft hij dan een error. En chmod je bestand is, zo dat je de rehten krijgt het bestand te wijzigen.

zoiets dus:

  1. <?php
  2.  
  3. $file = $pad.$doelbestandsnaam;
  4. $tempfile = $pad.'s'.$doelbestandsnaam;
  5. $newfile = $pad.'t'.$doelbestandsnaam;
  6. copy($file, $tempfile); //nieuw bestand aangemaakt
  7. //resize tijd
  8.  
  9. // Load
  10. chmod($file, 0777);
  11. list($width, $height) = getimagesize($file);
  12. $thumb = imagecreatetruecolor(100, 100);
  13. $source = imagecreate(100,100);
  14.  
  15. // Resize
  16. imagecopyresized($thumb, $source, 0, 0, 0, 0, 100, 100, $width, $height);
  17. $file2 = $file .'.tmp';
  18. imagejpeg($thumb, $file2);
  19. rename ($file2,$newfile);
  20. if (file_exists($tempfile)) { unlink ($tempfile); }
  21. echo "<br>Het bestand ".$_FILES['afbeelding'.$i]['name']." is toegevoegd.";
  22.  
  23. }
  24. ?>



Offline SlashDotCom - 21/05/2005 20:10
Avatar van SlashDotCom Lid Kheb dit probleem ook gehad met een script vanop sitemasters.
Er zat ergens een fout waardoor hij de dir niet kon uitlezen.
Miss dat je hier ook met die fout zit?
Offline sjemmie - 21/05/2005 20:12 (laatste wijziging 21/05/2005 20:13)
Avatar van sjemmie Nieuw lid gedaan, geen errors en ik chmod het ook
chmod ($pad.$doelbestandsnaam, 0777);
Offline TFOL - 21/05/2005 20:14
Avatar van TFOL PHP beginner doet hij het nu wel of niet?
Offline sjemmie - 21/05/2005 20:19
Avatar van sjemmie Nieuw lid hij doet het dus niet, ik blijf zwarte thumbnails behouden
Offline TFOL - 21/05/2005 20:24
Avatar van TFOL PHP beginner verander

-imagecreate is in imagecreatefromjpg
-imagecopyresized is in imagecopyresampled
Offline sjemmie - 21/05/2005 20:27 (laatste wijziging 22/05/2005 12:55)
Avatar van sjemmie Nieuw lid ja maar als ik een .gif bestand wil uploaden krijg ik een warning

Warning: Wrong parameter count for imagecreatefromjpeg() in /www/cms/upload3.php on line 46

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /www/cms/upload3.php on line 49

En de thumbnails blijven zwart
Offline TFOL - 21/05/2005 20:31
Avatar van TFOL PHP beginner maar als je een jpg-file upload doet hij het wel?

probeer het anders is met gewoon imagecreate zoals je eerst had, maar wel met die imagecopyresampled
Offline sjemmie - 21/05/2005 20:35 (laatste wijziging 21/05/2005 20:36)
Avatar van sjemmie Nieuw lid nee ook met jpg bleef het zwart

en helaas ook met imagecopyresampled alleen als wijziging.

schien ligt het gewoon aan die code ofzo dat er nog een extra functie erbij hoort, 1 die kleuren bijbrengt ofzo ?
Offline SlashDotCom - 21/05/2005 20:42
Avatar van SlashDotCom Lid heb je die thumbnail al verwijderd nadat je de code hebt willen aanpassen?
Offline sjemmie - 21/05/2005 20:45
Avatar van sjemmie Nieuw lid jep
Offline TFOL - 21/05/2005 20:46 (laatste wijziging 21/05/2005 20:47)
Avatar van TFOL PHP beginner @slashdotcom:

er staat toch if(file_excists($tempfile)) { unlink($tempfile); }
en unlink verwijderd t bestand

@sjemmie:

je moet somige var's wel ffies aanpassen
  1. <?php
  2. if(isset($_POST['uploaden']))
  3. {
  4.  
  5. $tmp_bestand = $_FILES[$i]['tmp_name'];
  6. $bestand = $_FILES[$i]['name'];
  7. move_uploaded_file($tmp_bestand, $dir."/".$bestand);
  8. chmod ($dir."/".$bestand, 0777);
  9.  
  10. $bron = imagecreate($dir."/".$bestand) or die ("Jpg probleempje");
  11. $b_breedte = imagesx($bron); // Bron breedte
  12. $b_hoogte = imagesy($bron); // bron hoogte
  13.  
  14. //verhouding berekenen
  15. $verhouding = $b_breedte / $max_breedte;
  16.  
  17. //breedte berekenen en afronden
  18. $nieuw_breedte = round($b_breedte / $verhouding);
  19.  
  20. //hoogte berekenen en afronden
  21. $nieuw_hoogte = round($b_hoogte / $verhouding);
  22.  
  23. if ($b_breedte > $max_breedte) {
  24. $nieuw_jpg = imagecreatetruecolor($nieuw_breedte ,$nieuw_hoogte) or die ("Probleem met maken van plaatje jpg");
  25. imagecopyresampled($nieuw_jpg, $bron, 0, 0, 0, 0, $nieuw_breedte, $nieuw_hoogte, $b_breedte, $b_hoogte);
  26. Imagejpeg($nieuw_jpg,$dir."/".$bestand,120); //120 is jpg kwaliteit
  27. } // einde resizen
  28. } // einde if 'uploaden'
  29. ?>


dat is het upload en resize gedeelte uit mijn script
Offline sjemmie - 21/05/2005 21:07
Avatar van sjemmie Nieuw lid dat "or die"(error zoveel) is wel handig:

ik krijg een warning als ik van m;n eerdere imagecreate
"$source = imagecreate(100,100);" dit maak: "$source = imagecreate($file);"

Warning: Wrong parameter count for imagecreate() in /www/cms/upload3.php on line 47
error 1

in de functie image create heb je toch je padvermelding nodig en niet de gewenste afmetingen ?
Offline sjemmie - 21/05/2005 21:18 (laatste wijziging 21/05/2005 22:42)
Avatar van sjemmie Nieuw lid ok ik heb de code zo aangepast, maar nu werkt het alleen voor jpg bestanden zonder warnings.
Zodra dit een gif-bestand word krijg ik warnings en een zwarte thumb.
Het ligt echt aan de imagecreatefromjpeg, ik heb het met imagecreate geprobeert maar dan krijg ik zoiezo warnings bij gif en jpgs en zwarte thumbs


  1. <? $file = $pad.$doelbestandsnaam;
  2. $tempfile = $pad.'s'.$doelbestandsnaam;
  3. $newfile = $pad.'t'.$doelbestandsnaam;
  4. copy($file, $tempfile); //nieuw bestand aangemaakt
  5. //resize tijd
  6.  
  7. // Load
  8. list($width, $height) = getimagesize($tempfile);
  9.  
  10. $thumb = imagecreatetruecolor(100, 100);
  11. $source = imagecreatefromjpeg($tempfile);
  12.  
  13. // Resize
  14. imagecopyresized($thumb, $source, 0, 0, 0, 0, 100, 100, $width, $height);
  15. $file2 = $tempfile .'.tmp';
  16. imagejpeg($thumb, $file2);
  17. rename ($file2,$newfile);?>


vinTage edit: gebruik de edit knop zodat niet heel de topic vol staan met berichten van jou alleen aub 
Offline Frederic - 21/05/2005 21:38
Avatar van Frederic PHP ver gevorderde en welke warnings?
Offline TFOL - 21/05/2005 22:35
Avatar van TFOL PHP beginner bij imagecreate of imagecreatetruecolor moet je geen bestandnaam inzetten, zoals wat jy doet met $file, maar de breedte en de hoogte (dat is bij jou imagecreate(100, 100);)

een handige site is http://nl2.php....create.php

aan de rechterkant kun je andere functies vinden die te maken hebben bij t maken van thumbnails
Offline sjemmie - 22/05/2005 10:34 (laatste wijziging 22/05/2005 10:40)
Avatar van sjemmie Nieuw lid ok vintage 

Ok heren ik ben er bijna 

  1. <? chmod ($pad.$doelbestandsnaam, 0777);
  2.  
  3. $file = $pad.$doelbestandsnaam;
  4. $tempfile = $pad.'s'.$doelbestandsnaam;
  5. $newfile = $pad.'t'.$doelbestandsnaam;
  6. copy($file, $tempfile); //nieuw bestand aangemaakt
  7. //resize tijd
  8.  
  9. // Load
  10. list($width, $height) = getimagesize($tempfile);
  11.  
  12. $thumb = imagecreatetruecolor(100, 100)or die("error 1");
  13. if($extensie==".jpg"){ $source = imagecreatefromjpeg($tempfile)or die("error 21");}
  14. if($extensie==".gif"){ $source = imagecreatefromgif($tempfile)or die("error 22");}
  15. if($extensie==".png"){ $source = imagecreatefrompng($tempfile)or die("error 23");}
  16. // else{$source = imagecreatefromjpeg($tempfile)or die("error 24");}
  17.  
  18.  
  19.  
  20. // Resize
  21. imagecopyresized($thumb, $source, 0, 0, 0, 0, 100, 100, $width, $height);
  22. $file2 = $tempfile .'.tmp';
  23. if($extensie==".jpg"){ imagejpeg($thumb, $file2)or die("error 31");}
  24. if($extensie==".gif"){ imagegif($thumb, $file2)or die("error 32");}
  25. if($extensie==".png"){ imagepng($thumb, $file2)or die("error 33");}
  26. rename ($file2,$newfile);
  27. if (file_exists($tempfile)) { unlink ($tempfile); }
  28. // if (file_exists($newfile)) { unlink ($newfile); }
  29.  
  30. echo "<br>Het bestand ".$_FILES['afbeelding'.$i]['name']." is toegevoegd.";
  31. echo $file;?>


Ik pas voor elke extensie een andere imagecreate-functie toe.

M'n jpg bestanden zijn normaal maar m'n gif bestanden hebben een zwarte achtergrond IN het plaatje terwijl het plaatje in het gif bestand zelf wel zichtbaar is. De achtergrond wil ik gewoon hebben zoals het oorspronkelijk was.

Moet ik iets wijzigen in imagecopyresized en wat pziez ?
Offline TFOL - 22/05/2005 10:43
Avatar van TFOL PHP beginner zelf gebruik ik imagecopyresampled. Ik weet niet welke beter is maar ik weet wel dat je dezelfde dingen moet invullen. en dat is bij jou goed
(nieuw_bestand, oud_bestand, 0, 0, 0, 0, nieuw_breedte, nieuw_hoogte, oud_breedte, oud_hoogte);
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.313s