Foros del Web » Programando para Internet » PHP »

Dibujar rectangulo en imagen

Estas en el tema de Dibujar rectangulo en imagen en el foro de PHP en Foros del Web. Quiero poder dibujar un rectangulo encima de una imagen y he estado probando cosillas... He probado la función imagerectangle y he visto que es lo ...
  #1 (permalink)  
Antiguo 02/11/2004, 11:48
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 9 meses
Puntos: 0
Exclamación Dibujar rectangulo en imagen

Quiero poder dibujar un rectangulo encima de una imagen y he estado probando cosillas...

He probado la función imagerectangle y he visto que es lo que buscaba para mostrar los rectangulos.

Ahora quiero los puntos que se le pasan a imagerectangle sean dinámicos (por medio de variables) para conseguir esto he creado una función javascript que me guarda las coordenadas al pulsar el ratón.

Quería mejorarlo un poco más y hacerlo más fácil para el usuario, me gustaría conseguir un efecto tipo los programas de diseño con el cuadro de selección, que al pinchar y arrastrar se viera la selección, y se guardaran internamente las coordenadas para luego ser usadas con la funcion imagerectangle..

No sé si me explico

He estado buscando y dandole vueltas, pero no tengo idea de como hacerlo, podeis darme alguna idea?
Es posible esto con php o me tengo que ir a otros lenguajes como javascript..?

Muchas gracias!
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #2 (permalink)  
Antiguo 02/11/2004, 13:25
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

http://www.forosdelweb.com/f18/imagerectangle-243672/

__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #3 (permalink)  
Antiguo 03/11/2004, 04:21
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 9 meses
Puntos: 0
He estado mirando el manual una y mil veces, la otra duda si he sabido solucionarla a base de pegarme. Pero esto de hacer que mientras estes seleccionado te aparezca el cuadrado (como en programas de diseño) no lo consigo... he estado probando con imagedashedline, pero nada!
Estoy echa un lio..
Ayudaaaa :(
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #4 (permalink)  
Antiguo 03/11/2004, 05:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Quería mejorarlo un poco más y hacerlo más fácil para el usuario, me gustaría conseguir un efecto tipo los programas de diseño con el cuadro de selección, que al pinchar y arrastrar se viera la selección, y se guardaran internamente las coordenadas para luego ser usadas con la funcion imagerectangle..
Ese tipo de efectos ya se ha de crear en el "lado del cliente" .. es decir .. con DHTML (javacript + HTML), con un applet java, ActiveX o Flash incluso .. pero no con PHP .. Fijate que cada imagen que generas desde PHP implicaría una "recarga de página".

Un saludo,
  #5 (permalink)  
Antiguo 03/11/2004, 05:40
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 9 meses
Puntos: 0
Gracias Cluster, me voy pa javascript a ver que me dicen :)
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #6 (permalink)  
Antiguo 05/11/2004, 18:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

La respuesta en javascript parece que va bien (también participó un asiduo de php: epplestun)...

Resulta que se pueden crear dinámicamente cualquier elemento html, y el tema se ha resuelto con capas... pero pienso que si se generasen imágenes con la librería GD (yo las uso bastante) no sería necesario recargar la página, ya que el navegador tan solo buscaría la nueva imagen, que podría ser del tipo: <img src="rectangulo.php?ancho=100&alto=100" /> (por dar un ejemplo)

Ese fichero sería muy fácil de implementar, incluso se podrían implementar otro tipo de polígonos.

¿Es posible?...

El hilo javascript es éste: http://www.forosdelweb.com/f13/dibujar-rectangulos-243948/

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 06/11/2004, 04:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Usando las librerías GD, he mejorado la propuesta, generando un recorte de la misma imágen...

Por si a laguien le interesa, el fichero se llama parte.php y los parámetros que recibe son la imágen fuente (png), las coordenadas y la anchura y altura del recorte.

Código PHP:
<?php

header
("Content-Type: image/png");

if (isset(
$_GET["altura"])) $altura $_GET["altura"];
else 
$altura 1;
if (isset(
$_GET["anchura"])) $anchura $_GET["anchura"];
else 
$anchura 1;

if (isset(
$_GET["origen"])) $origen imageCreateFromPng($_GET["origen"]);
else 
$origen ImageCreate($anchura$altura);

if (isset(
$_GET["x"])) $x $_GET["x"];
else 
$x 0;

if (isset(
$_GET["y"])) $y $_GET["y"];
else 
$y 0;

//$destino = ImageCreateTrueColor($anchura, $altura);
$destino ImageCreate($anchura$altura);
imagecopy($destino$origen00$x$y$anchura$altura);

@
imagepng($destino);
imagedestroy($destino);
?>
y se llamaría así: <img src="parte.php?origen=origen.php&x=x_inicial&y=Y_i nicial&anchura=xxx&altura=yyy" />

Puede verse en el siguiente enlace: http://www.pepemolina.com/mapas/cuadraditos.html

Si creen que puede mejorarse, me gustaría que me lo dijeran. He intentado darle opacidad, pero no he podido (usando imageColorAllocate)



Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 20:22.