17/11/2008, 11:33
|
| Moderador | | Fecha de Ingreso: abril-2002 Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses Puntos: 1284 | |
Respuesta: Colorear zona de una imagen Hola:
Acabo de mirar el correo, y si dispones de php y las librerías GD, son ficheros bastante sencillos... te paso el código (si tienes problemas abre un mensaje en php que es más fácil encontrar ayuda... hay verdaderos monstruos )
transpa.php:
Código:
<?php
$ancho = (isset($_GET["ancho"])) ? $_GET["ancho"] : 1;
$alto = (isset($_GET["alto"])) ? $_GET["alto"] : 1;
$imagen = imagecreate($ancho, $alto);
$transpa = imagecolorallocate($imagen, 255, 255, 255);
imagecolortransparent($imagen, $transpa);
imagefill($imagen, 0, 0, $transpa);
header("Content-type: image/gif");
imagegif($imagen);
imagedestroy($imagen);
?>
y gifshape.php:
Código:
<?php
function rgbColor($fondo) {
$red = (int) hexdec(substr($fondo, 0, 2));
$green = (int) hexdec(substr($fondo, 2, 2));
$blue = (int) hexdec(substr($fondo, 4, 2));
return array($red, $green, $blue);
}
$ancho = $_GET["ancho"];
if (isset($ancho))
$ancho = $_GET["ancho"];
else
$ancho = 200;
$alto = $_GET["alto"];
if (isset($alto))
$alto = $_GET["alto"];
else
$alto = 200;
$coors = $_GET["coors"];
if (isset($coors)) {
$coordes = explode(",", $coors);
$diam = $coordes[2] * 2;
}
else {
$coordes = array(0, 0, $ancho, $alto, 0, $alto);
$diam = $coordes[2] * 2;
}
$puntos = count($coordes) / 2;
$imagen = imagecreate($ancho, $alto);
$shape = $_GET["shape"];
if (!isset($shape))
$shape = "rect";
//$negro = imagecolorallocate($copia, 0, 0, 0);
$transpa = imagecolorallocate($imagen, 254, 254, 254);
imagefill($imagen, 0, 0, $transpa);
imagecolortransparent($imagen, $transpa);
$borde = $_GET["borde"];
if (isset($borde)) {
$conBorde = true;
$rgbBorde = rgbColor($borde);
$_br = (int) $rgbBorde[0];
$_bg = (int) $rgbBorde[1];
$_bb = (int) $rgbBorde[2];
$_borde = imagecolorallocate($imagen, $_br, $_bg, $_bb);
}
else
$conBorde = false;
$relleno = $_GET["relleno"];
if (isset($relleno)) {
$conRelleno = true;
$rgbRelleno = rgbColor($relleno);
$_rr = (int) $rgbRelleno[0];
$_rg = (int) $rgbRelleno[1];
$_rb = (int) $rgbRelleno[2];
$_relleno = imagecolorallocate($imagen, $_rr, $_rg, $_rb);
}
else
$conRelleno = false;
switch($shape) {
case "circle":
if ($conRelleno)
imagefilledellipse($imagen, $coordes[0], $coordes[1], $diam, $diam, $_relleno);
if ($conBorde)
imageellipse($imagen, $coordes[0], $coordes[1], $diam, $diam, $_borde);
break;
case "poly":
if ($conRelleno)
imagefilledpolygon($imagen, $coordes, $puntos, $_relleno);
if ($conBorde)
imagepolygon($imagen, $coordes, $puntos, $_borde);
break;
default:
if ($conRelleno)
imagefilledrectangle($imagen, $coordes[0], $coordes[1], $coordes[2], $coordes[3], $_relleno);
if ($conBorde)
imagerectangle($imagen, $coordes[0], $coordes[1], $coordes[2], $coordes[3], $_borde);
break;
}
// output the picture
header("Content-type: image/png");
imagepng($imagen);
imagedestroy($imagen);
?>
Supongo que lo habré publicado en algún post php.
Saludos
__________________ Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo |