Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/05/2010, 11:42
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 10 meses
Puntos: 10
Respuesta: Marca de agua para fotos

Lo hice a mero tanteo, me dices si no te funciona:


Código PHP:
Ver original
  1. $image = $_GET['i'];
  2. $watermark = "water.png";
  3.  
  4. $im = imagecreatefrompng($watermark);
  5.  
  6. $ext = substr($image, -3);
  7.  
  8.  
  9. if(strtolower($ext) == "gif") {
  10. if (!$im2 = imagecreatefromgif($image)) {
  11. echo "Error opening $image!"; exit;
  12. }
  13. } else if(strtolower($ext) == "jpg") {
  14. if (!$im2 = imagecreatefromjpeg($image)) {
  15. echo "Error opening $image!"; exit;
  16. }
  17. } else if(strtolower($ext) == "png") {
  18. if (!$im2 = imagecreatefrompng($image)) {
  19. echo "Error opening $image!"; exit;
  20. }
  21. } else {
  22. die;
  23. }
  24.  
  25.     $x=imagesx($im2);
  26.     $y=imagesy($im2);
  27.     $wat=imagecreatetruecolor($x,$y);
  28.     imagecopy($wat,$im2,0,0,0,0,$x,$y);
  29.  
  30.     $wx=imagesx($im);
  31.     $wy=imagesy($im);
  32.     imageCopyMerge($wat,$im,($x-$wx),($y-$wy),0,0,$wx,$wy,100);
  33.  
  34. header('Content-Type: image/jpeg');
  35. imagejpeg($wat);

NOTA: Personalmente te sugiero que uses otro motor gráfico Imagemagick, aunque tu servidor debe soportarlo, las librerías GD son muy básicas y no trabajan bien con los canales alpha (transparencias) del PNG.