login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Watermerk bij geuploade foto

Offline SimonDW - 30/12/2012 15:51
Avatar van SimonDWNieuw lid Ik gebruik volgend script voor het uploaden van foto's bij nieuwsartikeltjes op onze site. Scriptje doet upload, resize en schrijft het weg in de database.

Nu zou ik graag 'n PNG logo als watermerk willen gebruiken, maar zit een beetje vast.

Iemand een idee om het bestaande script uit te breiden met watermerk mogelijkheden?

  1. <?
  2. include("database.php");
  3. if (!$submit) {
  4. ?>
  5. <link rel="stylesheet" href="style.css" type="text/css">
  6. <body bgcolor="#DEE3E7" link="#3A76B1" vlink="#3A76B1" alink="#3A76B1" text="#000000">
  7. <link rel="stylesheet" href="style.css" type="text/css">
  8. <FORM ENCTYPE="multipart/form-data" ACTION="upload_foto.php" METHOD=POST>
  9. <table width="600" border="0" cellspacing="0" cellpadding="0" align="center">
  10. <tr>
  11. <td width="600" nowrap><b><font color="#000000">.:: Foto <?print("$fotonr")?> uploaden</font></b></td>
  12. </tr>
  13. <tr>
  14. <td width="600" nowrap align="center" valign="top" height="23"><div align="left">De foto's zullen worden geplaatst op het volgende adres:<br>
  15. <b><? echo "$foto_url" ?></b><br>
  16. <br>
  17. <br>
  18. <input type="hidden" name="id" value="<?print("$id")?>" class="form">
  19. <input type="hidden" name="scat" value="<?print("$scat")?>" class="form">
  20. <input type="hidden" name="fotonr" value="<?print("$fotonr")?>" class="form">
  21. Plaats volgende afbeelding / foto:<br>
  22. <input name="userfile" type="file" class="form" size="35">
  23. <br>
  24. <br>
  25. <input type="submit" value="Verstuur Bestand" name="submit" class="form">
  26. </div></td>
  27. </tr>
  28. </table>
  29. </FORM>
  30. <?
  31. } else {
  32. //
  33. if (isset($_FILES['userfile'])) {
  34. //De groote van het bestand vergelijken met het maximum
  35. if ($_FILES['userfile']['type'] > 302400){
  36. exit("Je bestand " . $_FILES['userfile']['size'] . " bytes, het maximum toegelaten is 302400 bytes");
  37. }
  38. if($_FILES['userfile']['type'] == "image/jpeg" || $_FILES['userfile']['type'] == "image/pjpeg") {
  39. $x = strtolower(substr($_FILES['userfile']['name'], -3));
  40. // De naam van de file veranderen in bv. image0
  41. $file_name = "afbeelding_";
  42. $n = 0;
  43. // Check of file al bestaat, zo ja, filename verhogen
  44. while (file_exists('../fotos/' . $file_name . $n . '.' . $x))
  45. {
  46. $n = $n + 1;
  47. }
  48. $file_name = $file_name . $n;
  49.  
  50. move_uploaded_file($_FILES['userfile']['tmp_name'],'../fotos/' . $file_name . '.' . $x);
  51. chmod ('../fotos/' . $file_name . '.' . $x, 0777);
  52. //kiezen
  53. $b = imagecreatefromjpeg('../fotos/' . $file_name . '.' . $x) or die ("JPG probleem. Selecteer een andere foto aub.");
  54. $bx = imagesx($b); // Bron breedte
  55. $by = imagesy($b); // bron hoogte
  56. $lm = $b;
  57. $width=600;
  58. $temp=$bx/600;
  59. $height=$by/$temp;
  60. if ($bx > $width) {
  61. $lm1 = imagecreatetruecolor($width ,$height) or die ("Probleem met maken van de JPG afbeelding.");
  62. imagecopyresampled($lm1, $lm, 0, 0, 0, 0, $width, $height, $bx, $by);
  63. Imagejpeg($lm1,'../fotos/' . $file_name . '.' . $x,80); //80 is jpg kwaliteit
  64. imageDestroy($lm1);
  65. imageDestroy($lm);
  66. }
  67.  
  68. $query = "UPDATE nieuws SET foto$fotonr='$file_name.jpg' WHERE id='$id'";
  69. $result = mysql_query($query) or die ("Fout, foto werd niet opgeslagen.");
  70. header ("Location: index.php?module=nieuws");
  71. } else {
  72. echo "Het bestandsformaat wordt niet ondersteund.<br>Alleen JPG (jpg) wordt toegelaten.";
  73. }
  74. }
  75. }
  76. ?>

3 antwoorden

Gesponsorde links
Offline GroundZero - 30/12/2012 21:20
Avatar van GroundZero Lid
  1. $aap = imagecreatefrompng("vb-pic.png");
  2. $aapBreed = imagesx($aap);
  3. $aapHoog = imagesy($aap);
  4.  
  5. $watermerk = imagecreatefrompng("vb-pic-4.png");
  6. $watermerkBreed = imagesx($watermerk);
  7. $watermerkHoog = imagesy($watermerk);
  8.  
  9. //
  10. $color = ImageColorAllocate($watermerk, 255, 255, 255);
  11. ImageColorTransparent($watermerk, $color);
  12. //
  13.  
  14. imagecopymerge($aap, $watermerk, ($aapBreed - $watermerkBreed), ($aapHoog - $watermerkHoog), 0, 0, 200, 16, 100);
  15.  
  16. imagepng($aap);
  17. imagedestroy($aap);
Offline SimonDW - 04/01/2013 15:46
Avatar van SimonDW Nieuw lid Thanks, heb het proberen te integreren in m'n bestaande scirpt: zonder resultaat...
Offline marten - 04/01/2013 15:56
Avatar van marten Beheerder Wil je uitgebreide error meldingen aanzetten? :

  1. ini_set('display_errors', 1);
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s