login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Resize + imagestring bij upload GD

Offline Flyboeing - 22/11/2008 12:23
Avatar van FlyboeingNieuw lid Ik heb het volgende script:
  1. <?php
  2.  
  3. if($_SERVER['REQUEST_METHOD']=='POST')
  4. {
  5. $uploadpad = 'bestanden/';
  6. $nieuwenaam = $_POST['txtRegistratie'] ;
  7. $msg = '';
  8. $img = '';
  9. $foto = $_FILES['filBestand'];
  10.  
  11. if ( ( $foto['name']== '' ) )
  12. {
  13. $msg = 'Geen foto geselecteerd!<br>';
  14. }
  15.  
  16. else
  17. {
  18. $size = $foto['size'];
  19.  
  20. if ( $size > 3024000 )
  21. {
  22. $msg = 'Bestand is $size bytes.<br>(maximum toegelaten is 3024000 bytes)<br>';
  23. }
  24.  
  25. else
  26. {
  27.  
  28. if ( $foto ['type'] == 'image/jpeg' || $foto['type'] == 'image/pjpeg' )
  29. {
  30. $n = 0;
  31.  
  32. while ( file_exists ( $uploadpad . $nieuwenaam . $n .'.jpg' ) )
  33. {
  34. $n++;
  35. }
  36.  
  37. $nieuwenaam = $uploadpad . $nieuwenaam . $n .'.jpg';
  38. $watermerk = "Copyright by ".$_POST['lstNaam']." // ".$_POST['txtDatumdag']."-".$_POST['txtDatummaand']."-".$_POST['txtDatumjaar']." // ".$_POST['txtLocatie']." // ".$_POST['txtRegistratie']." // ".$_POST['txtToestel']." // ".$_POST['txtMaatschappij'];
  39. $img = imagecreatefromjpeg ( $foto['tmp_name'] );
  40. $breedte = imagesx ( $img );
  41. $hoogte = imagesy ( $img );
  42. $copyright = imagecreatetruecolor ( $breedte , 30 );
  43. $kleur = imagecolorallocate ( $copyright , 255 , 255 , 255 );
  44.  
  45. imagestring ( $copyright , 6 , 7 , 2 , $watermerk , $kleur );
  46. imagecopy ( $img , $copyright , 0 , $hoogte - 20 , 0 , 0 , $breedte , 20 );
  47. imagejpeg ( $img , $nieuwenaam , 100 );
  48. chmod ( $nieuwenaam , 0777 );
  49.  
  50. $img= "<a href='$nieuwenaam' target='_blank'><img border='0' src='$nieuwenaam' width='300'></a>";
  51. $msg= "<font color='green'><B>Het bestand is succesvol opgeslagen!</B></font><br><BR>Ga naar de <a href='./gallery'>gallerij</a> voor meer fotos";
  52.  
  53. unset($_POST);
  54. }
  55.  
  56. else
  57. {
  58. $msg="<font color='red'><B>Het bestandsformaat wordt niet ondersteund.<br> Alleen .jpg is toegelaten.</B></font><br>";
  59. }
  60. }
  61. }
  62. }
  63. ?>


Dit zorgt ervoor dat de gegevens die ik invul in het formulier naar een de foto die ik upload wordt geschreven, dus dat er een copyright balkje onder komt te staan.

Nu wil ik tijdens het uploaden de foto resizen naar 800x...... (breedte dus 800px). Maar hoe doe je zoiets? Via google kwam ik het volgende script tegen op deze site:
http://www.site...amp;id=169

Dit heeft ongeveer dezelfde opbouw als mijn script, alleen het samenvoegen lukt me niet echt.
Ik heb het al geprobeerd, maar op gegeven moment loop ik vast.

Ik heb het volgende voor elkaar gekregen:
  1. <?
  2. if (isset($_FILES['bestand'])) {
  3. //De groote van het bestand vergelijken met het maximum
  4. if ($_FILES['bestand']['type'] > 302400){
  5. exit("Je bestand " . $_FILES['bestand']['size'] . " bytes, het maximum toegelaten is 302400
  6.  
  7. bytes");
  8. }
  9.  
  10. if($_FILES['bestand']['type'] == "image/jpeg" || $_FILES['bestand']['type'] == "image/pjpeg") {
  11.  
  12. $x = strtolower(substr($_FILES['bestand']['name'], -3));
  13. // De naam van de file veranderen in bv. image0
  14. $file_name = $_POST['txtRegistratie'];
  15. $n = 0;
  16. // Check of file al bestaat, zo ja, filename verhogen
  17. while (file_exists('bestanden/' . $file_name . $n .'.' . $x))
  18. {
  19. $n = $n + 1;
  20. }
  21. $file_name = $file_name . $n;
  22.  
  23. move_uploaded_file($_FILES['bestand']['tmp_name'],'bestanden/' . $file_name . '.' . $x);
  24. chmod ('bestanden/' . $file_name . '.' . $x, 0777);
  25. //kiezen
  26. $b = imagecreatefromjpeg('bestanden/' . $file_name . '.' . $x) or die ("Jpg probleempje");
  27.  
  28. $watermerk = "Copyright by ".$_POST['lstNaam']." // ".$_POST['txtDatumdag']."-".$_POST['txtDatummaand']."-".$_POST
  29.  
  30. ['txtDatumjaar']." // ".$_POST['txtLocatie']." // ".$_POST['txtRegistratie']." // ".$_POST['txtToestel']." //
  31.  
  32. ".$_POST['txtMaatschappij'];
  33. $copyright = imagecreatetruecolor ( $breedte , 30 );
  34. $kleur = imagecolorallocate ( $copyright , 255 , 255 , 255 );
  35.  
  36. imagestring ( $copyright , 6 , 7 , 2 , $watermerk , $kleur );
  37. imagecopy ( $img , $copyright , 0 , $hoogte - 20 , 0 , 0 , $breedte , 20 );
  38. imagejpeg ( $img , $nieuwenaam , 100 );
  39.  
  40. $bx = imagesx($b); // Bron breedte
  41. $by = imagesy($b); // bron hoogte
  42. $lm = $b;
  43. $width=800;
  44. $temp=$bx/800;
  45. $height=$by/$temp;
  46. if ($bx > $width) {
  47. $lm1 = imagecreatetruecolor($width ,$height) or die ("Probleem met maken van plaatje jpg");
  48. imagecopyresampled($lm1, $lm, 0, 0, 0, 0, $width, $height, $bx, $by);
  49. Imagejpeg($lm1,'bestanden/' . $file_name . '.' . $x,100); //100 is jpg kwaliteit
  50. imageDestroy($lm1);
  51. imageDestroy($lm);
  52. }
  53. echo "Het bestand is succesvol opgeslagen";
  54. } else {
  55. echo "Het bestands formaat word niet ondersteund.<br> Alleen jpg word toegelaten.";
  56. }
  57. }
  58. ?>


Kan iemand mij verder helpen?

2 antwoorden

Gesponsorde links
Offline JBke - 22/11/2008 15:02 (laatste wijziging 22/11/2008 17:28)
Avatar van JBke PHP gevorderde GD Image Control Met Upload

is het zoiets dat je zoekt is met GD. en je kan meerdere acties tegelijk uitvoeren. Resize samen met mime type wisselen of dupliceren van images tegelijk met resize en/of waterstamp.

heb enkele functies op plaatscode geplaatst Plaatscode: 39625

Als je het hele pakketje wil inclusief javascript en colorpickers voor het watermerk vraag maar per PS he 
Offline Flyboeing - 23/11/2008 17:43
Avatar van Flyboeing Nieuw lid Ik heb er naar gekeken, maar vind het allemaal heel erg omslachtig en niet echt fijn werken.

Ik wil het eigenlijk zo hebben dat als wanneer er een afbeelding wordt geupload dat er 2 dingen gedaan wordt:
- resizen naar 800x.....
- text watermerk aanbrengen (gegevens uit een formulier)

Het lukt mij wel op de afbeelding te resizen, maar het watermerk aanbrengen lukt mij niet.

Zou iemand kunnen helpen?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s