Foros del Web » Programando para Internet » PHP »

centrar marca de agua con php

Estas en el tema de centrar marca de agua con php en el foro de PHP en Foros del Web. Hola estoy probando con imagecopy crear una marca de agua en una galeria de imagenes, ahora ¿como hago para que la marca de agua salga ...
  #1 (permalink)  
Antiguo 10/06/2011, 12:08
 
Fecha de Ingreso: marzo-2006
Mensajes: 216
Antigüedad: 18 años, 1 mes
Puntos: 0
centrar marca de agua con php

Hola estoy probando con imagecopy crear una marca de agua en una galeria de imagenes, ahora ¿como hago para que la marca de agua salga en el centro de cada foto? indicar que todas las fotos tiene el mismo tamaño. Espero su ayuda gracias
  #2 (permalink)  
Antiguo 10/06/2011, 12:12
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: centrar marca de agua con php

mmmmmmmm, hay una funcion que obtiene el tamaño de la imagen, si conoces el tamaño de la galería de imagenes, puedes hacer un

$posicion = ($ancho_galeria / 2) - ($ancho_imagen / 2)

o algo asi XD!!!
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #3 (permalink)  
Antiguo 10/06/2011, 12:15
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 7 meses
Puntos: 21
Respuesta: centrar marca de agua con php

Foto:
ancho: 450
alto: 300

marca de agua:
ancho: 150
alto: 90

(450 - 150) / 2 = 150
(300 - 90) / 2 = 105

Ahora tienes que colocar la marca de agua en las coordenadas 150, 105
__________________
----
http://www.mascodigo.com
  #4 (permalink)  
Antiguo 10/06/2011, 12:16
 
Fecha de Ingreso: marzo-2006
Mensajes: 216
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: centrar marca de agua con php

estaba usando este codigo pero no me aclaro

Código PHP:

            $img_marca
=imagecreatefromfile($marca);
            
$ancho_marca=imagesx($img_marca);
            
$alto_marca=imagesy($img_marca);            
            
$ancho_bg=imagesx($imagen);
            
$alto_bg=imagesy($imagen);
            
ImageAlphaBlending($imagentrue);

            
// Posición de la marca: Abajo a la derecha
            
$posicion_x $ancho_bg $ancho_marca;
            
$posicion_y $alto_bg $alto_marca;

            
//aplica marca
            
imagecopy($imagen,$img_marca,$posicion_x,$posicion_y,0,0,$ancho_marca,$alto_marca); 
  #5 (permalink)  
Antiguo 10/06/2011, 12:21
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 7 meses
Puntos: 21
Respuesta: centrar marca de agua con php

creo que podría ser así:

Código PHP:
// Posición de la marca: Centrada
$posicion_x = ($ancho_bg $ancho_marca) / 2;
$posicion_y = ($alto_bg $alto_marca) / 2
__________________
----
http://www.mascodigo.com
  #6 (permalink)  
Antiguo 10/06/2011, 13:06
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: centrar marca de agua con php

nx00 se me adelantooooooo!

ok, primero usas la funcion getimagesize();

$size=getimagesize($imagen);

esto te crea un array en la variable $size donde $size[0] es el ancho y $size[1] es el alto, pero necesitamos saber la mitad así que lo dividimos por 2:

$x=$size[0]/2;
$y=$size[1]/2;

ahora, necesitamos también la mitad del ancho y la mitad del alto de la imagen de la marca de agua, ya que esta también debe quedar centrada, supongamos que la imagen de la marca de agua mide 120x100:

$wx=120/2;
$wy=100/2;

la idea es, entonces, poner la marca de agua a la mitad de la imagen pero restandole la mitad de la marca de agua:



Uploaded with ImageShack.us

por lo tanto se pegaría así

imagecopy($imagen,$img_marca,$x-$wx,$y-$wy,0,0,$wx*2,$wy*2);

XD

me gusta trabajar con imágenes
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: agua, marca
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:01.