login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Watermarks!

Offline bambino - 11/03/2006 18:24 (laatste wijziging 13/03/2006 17:23)
Avatar van bambinoHTML interesse Hallo,

ik ben bezig met een watermark script te maken. Maar het werkt ALLEEN van gif naar gif (dus gif watermark of .gif image). De rst werkt niet! (enkel png -> png heb ik niet geprobeerd, en jpg is niet transparant te maken, dus dat is toch nutteloos). Ik snap het helemaal niet, ik gebruik dit script.

  1. <?php
  2.  
  3. //header('content-type: image/jpeg');
  4.  
  5. $image = "pajot.jpeg";
  6.  
  7. $watermark_1 = "watermark.gif";
  8.  
  9.  
  10. $watermark = imagecreatefromgif($watermark_1);
  11.  
  12. imagealphablending($watermark, FALSE);
  13. imagesavealpha($watermark, TRUE);
  14.  
  15. $watermark_width = imagesx($watermark);
  16. $watermark_height = imagesy($watermark);
  17.  
  18. $size = getimagesize($image);
  19. $image = imagecreatefromjpeg($image);
  20.  
  21. $x = $size[0] - $watermark_width - 10;
  22. $y = $size[1] - 40;
  23.  
  24. imagecopymerge($image, $watermark, $x, $y, 0, 0, $watermark_width, $watermark_height, 100);
  25.  
  26. imagejpeg($image);
  27.  
  28. imagedestroy($image);
  29. imagedestroy($watermark);
  30.  
  31. ?>


Als ik nu alles verander naar .gif, dan werkt het dus wel. Ik dacht dat het aan mij lag, maar ik heb een paar andere scripts opgezocht (er staat er hier ook een), en daar krijg ik OVERAL hetzelfde probleem. HELP PLZ

14 antwoorden

Gesponsorde links
Offline Rens - 11/03/2006 18:27
Avatar van Rens Gouden medaille

Crew algemeen
Jij gebruikt deze, maar deze bestaat ook nog.
Het verschil, de eerste is voor gif, de 2e kun je gebruiken voor png.
Offline bambino - 11/03/2006 18:31 (laatste wijziging 11/03/2006 18:37)
Avatar van bambino HTML interesse probeer het eens uit zou ik zeggen, lukt bij mij echt niet...

dan krijg je dit,

  1. <?
  2. header('content-type: image/jpeg');
  3.  
  4. $image = "pajot.jpg";
  5.  
  6. $watermark_1 = "watermark.png";
  7.  
  8. $watermark = imagecreatefrompng($watermark_1);
  9. $watermark_width = imagesx($watermark);
  10. $watermark_height = imagesy($watermark);
  11.  
  12. $size = getimagesize($image);
  13. $image = imagecreatefromjpeg($image);
  14.  
  15. $x = $size[0] - $watermark_width - 5;
  16. $y = 5;
  17.  
  18. imagecopymerge($image, $watermark, $x, $x, 0, 0, $watermark_width, $watermark_height, 100);
  19.  
  20. imagejpeg($image);
  21.  
  22. imagedestroy($image);
  23. imagedestroy($watermark);
  24.  
  25. ?>


en bij mij leest hij de watermark nietgoed, en krijg ik een gekleurd vierkantje, en niet de echte afbeelding...

als je nie begrijpt wat ik bedoel, het bovenstaande script geeft dit :

http://area51.r...ermark.php
http://area51.r...ermark.png (watermark_png)
http://area51.r...ermark.gif
(watermark_gif)
http://area51.r.../pajot.gif (image_gif)
http://area51.r.../pajot.jpg (image_jpg)
http://area51.r.../pajot.png (image_png)
Offline Rens - 11/03/2006 18:37 (laatste wijziging 11/03/2006 18:38)
Avatar van Rens Gouden medaille

Crew algemeen
Je zou het ook anders kunnen proberen.
Je leest de string van het plaatje in (file_get_contents()).
Daarna zet je in een var de laatste paar tekens, dus na de laatste punt.
Dan loop je met een switch door de var heen:
  1. <?PHP
  2. $sBestand = "plaatje.jpg";
  3. $sSource = file_get_contents($sBestand);
  4. $aBestand = explode(".", $sBestand);
  5. $sExt = $aBestand[(count($aBestand)-1];
  6. switch($sExt)
  7. {
  8. case "gif":
  9. imageGIF($sSource);
  10. break;
  11. case "png":
  12. imagePNG($sSource);
  13. break;
  14. case "jpg":
  15. imageJPEG($sSource);
  16. break;
  17. }
  18. ?>
Offline bambino - 11/03/2006 18:40
Avatar van bambino HTML interesse dat is het probleem niet, het probleem is gewoon dat ik blijkbaar geen watermark van een ander type op een afbeelding kan krijgen 
Offline Rens - 11/03/2006 18:41
Avatar van Rens Gouden medaille

Crew algemeen
Ah, nu volg ik het helemaal denk ik.
Dat komt, denk ik, omdat je watermark een .gif bestand is, en je een .jpg/.jpeg functie gebruikt.
Dat werkt niet samen he...
Offline bambino - 11/03/2006 18:50
Avatar van bambino HTML interesse da's net het probleem!!!!!!

ik kan toch geen .jpg als watermark gaan gebruiken?!

en ik gebruik jpg functies voor het jpg bestand, en gif functies voor het gif bestand....
Offline rambo - 11/03/2006 19:03 (laatste wijziging 11/03/2006 19:03)
Avatar van rambo HTML beginner Dit is de code die ik gebruik om een watermerk te maken, indertijd eens opgezocht in de commentaren die in de handleiding van php geplaatst waren:

  1. <?php
  2. function watermark($foto, $watermark, $destination) {
  3. $watermarkfile_id = imagecreatefrompng(watermark);
  4.  
  5. imagealphablending($watermarkfile_id, FALSE);
  6. imagesavealpha($watermarkfile_id, TRUE);
  7.  
  8. $sourcefile_id = imagecreatefromjpeg($foto);
  9.  
  10. $sourcefile_width = imagesx($sourcefile_id);
  11. $sourcefile_height = imagesy($sourcefile_id);
  12. $watermarkfile_width = imagesx($watermarkfile_id);
  13. $watermarkfile_height = imagesy($watermarkfile_id);
  14. $dest_x = $sourcefile_width - 160;
  15. $dest_y = $sourcefile_height - 160;
  16.  
  17. imagecopy($sourcefile_id, $watermarkfile_id, $dest_x, $dest_y, 0, 0, $watermarkfile_width, $watermarkfile_height);
  18. imagejpeg($sourcefile_id, $destination, 100);
  19.  
  20. imagedestroy($sourcefile_id);
  21. imagedestroy($watermarkfile_id);
  22. }
  23. ?>


Werkt hier perfect met een png-watermerk en jpg-bestanden.
Offline bambino - 11/03/2006 19:23 (laatste wijziging 11/03/2006 19:30)
Avatar van bambino HTML interesse dus jij gebruikt gewoon imagecopy en niet imagecopymerge?

Dan kan ik die transparency niet gebruiken, maar dit is toch al iets, zien of het werkt. Bedankt

Gvd, dat werkt ook niet, het output gewoon

"http://localhost/various/watermark.php" (dat is men output) <_<
Offline Rens - 11/03/2006 19:50 (laatste wijziging 11/03/2006 19:55)
Avatar van Rens Gouden medaille

Crew algemeen
Localhost?^^
edit; Ja, maar denk er ook even aan dat wij niet op jouw localhost kunnen kijken hè...^^
Offline bambino - 11/03/2006 19:52
Avatar van bambino HTML interesse geen zin om elke keer up te loaden, heb het btw wel net gedaan

http://area51.r...ermark.php
Offline Maarten - 11/03/2006 19:58
Avatar van Maarten Erelid Haal de header() erboven eens weg, dus wss
  1. <?php
  2. header('Content-Type: image/jpeg');
  3. ?>

Of iets dergelijks.. als je die weghaalt worden er waarschijnlijk fouten getoond waaruit je wel iets kan afleiden..
Offline bambino - 11/03/2006 20:08 (laatste wijziging 11/03/2006 20:17)
Avatar van bambino HTML interesse dan gebeurt er helemaal niets meer :-(

dit begint echt bijzonder irritant te worden

waarom werkt dat script bij mij niet, terwijl hetbij anderen wel werkt 
Offline Maarten - 11/03/2006 20:34
Avatar van Maarten Erelid Zet dan ook even error_reporting(E_ALL) bovenaan.
Offline bambino - 13/03/2006 17:17 (laatste wijziging 13/03/2006 17:42)
Avatar van bambino HTML interesse sorry heb ff niet meer aan deze topic gedacht :-).

Zal dat eens proberen 

Error reporting geeft niets aan 

ik zal ff men huidige script kopiëren... (zie eerste post...)

en met de watermark als PNG krijg iik hetzelfde probleem...

EDIT

Ongelofelijk, het lag gewoon aan men basis jpg! Ik las iets anders op php.net, van jpg's die niet gelaad kunnen worden, dus ik heb gwn een andere jpg genomen . Nu werkt het wel, alleen verlies ik de kleuren als ik een png watermark neem . (worden de kleuren verdraaid...), en met een gif watermark oogt het korreliger 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.247s