Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/12/2005, 17:04
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Gracias por la información, pero al final el problema estaba en otra cosa de lo más simple...

Es que estaba haciendo las pruebas con explorer y como las imagenes png no las soporta correctamente, los resultados no eran fiables.

Puedes echarle una mirada a una prueba del resultado...

http://www.pepemolina.com/mapas/prueba.html

En la página hay 4 imágenes: la original en png con fondo transparente, y 3 resultados del script con 3 versiones de la imagen (gif, png y jpg)... Solo veía el efecto en explorer con la imagen gif ¿? y cuando descubría que tanto en mozilla como en opera se obtenía el resultado deseado comprendí el problema...

El problema que tengo ahora es que mi servidor no soporta las imagenes gif (imagegif($imagen))...

Supongo que podría escribir a la salida estandar (echo) los datos del proceso y poner una cabecera gif para que mi server responda adecuadamente (tal vez algo "rebuscado")

Para terminar pongo el script completo:

Código:
<?php
$imagen = $_GET["imagen"];
$coors = $_GET["coors"];
if (isset($coors))
	$coordes = explode(",", $coors);
else
	$coordes = array(120, 120, 110, 110);
$diam = $coordes[2] * 2;
$image = imagecreatefromstring(file_get_contents($imagen));
$ancho = imagesx($image);
$alto = imagesy($image);
//$copia = imagecreatetruecolor($ancho, $alto);
$copia = imagecreate($ancho, $alto);

//ImageAlphaBlending($copia, true);
//imagesavealpha($copia, false);

$negro = imagecolorallocate($copia, 0, 0, 0);
$transpa = imagecolorallocate($copia, 255, 255, 255);

imagefill($copia, 0, 0, $negro);
imagefilledellipse($copia, $coordes[0], $coordes[1], $diam, $diam, $transpa);
imagecolortransparent($copia, $transpa);

//imagecopy($image, $copia, 0, 0, 0, 0, $ancho, $alto);
//imagecopymerge($image, $copia, 0, 0, 0, 0, $ancho, $alto, 100);
imagecopyresampled($image, $copia, 0, 0, 0, 0, $ancho, $alto, $ancho, $alto);

//imagesavealpha($image, true);
//ImageAlphaBlending($image, false);
//imagesavealpha($image, true);

//imagecopymerge($image, $copia, 0, 0, 0, 0, $ancho, $alto, 100);

//$transpa2 = imagecolorallocate($image, 0, 0, 0);

//imagealphablending($image, false);

$transpa2 = imagecolorexact($image, 0, 0, 0);
//imagecolortransparent($imagen, $transpa);

imagecolortransparent($image, $transpa2);

// output the picture
header("Content-type: image/png");
imagepng($image);

imagedestroy($image);

?>
Hay mucho código que hice comentario, para que se vea (más o menos) las pruebas que he hecho...

Bueno, saludos y muchas felicidades.

__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo