logo El diario de Pepe Molina (Caricatos)

yo

Tenemos una página para crear áreas de imágenes siempre que lleve colores planos, pero si tenemos el área y la imagen no tiene colores con la característica mencionada, podemos crear las áreas más artesanalmente.


Última caricatura

IV Asamblea de la AEC: IV Asamblea General de la Asociación Española de Caricaturistas

IV Asamblea de la AEC

RSS de las imágenes: rss


La Cita

Reprender al que yerra no basta si no se le enseña el camino recto

Lucio Junio Moderado Columela, escritor latino (s. I d. C.).


En esta zona están las páginas personales del autor.


Mis clientes ahora también son mis amigos (aunque les cobre).


En Mis amigos Informáticos hay una pequeña colección de páginas de colegas webmasters..


En Mis amigos artistas podemos encontrar artistas de cualquier índole (dibujantes, pintores, escritores...)


Las recomendaciones que proponemos son de índole variada.


Aquí un cajón de sastre de enlaces.


Nos referencian desde sitios de toda índole.


Puede contribuir a mantener esta página con su donativo.


botón pay-pal

Áreas poligonales para efecto rollover

emoticón de Caricatos Publicado el día 10 de noviembre de 2011
id=54; categorías: Vicisitudes de un Webmaster, Programación
rollover

Tenemos una página para crear áreas de imágenes siempre que lleve colores planos, pero si tenemos el área y la imagen no tiene colores con la característica mencionada, podemos crear las áreas más artesanalmente.

En otro apunte (javascript: rollover en mapas) habíamos comentado sobre una imagen que se obtenía dinámicamente y que generaba la figura cuyas coordenadas se pasaban como parámetros. A continuación ponemos el 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";

	$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;
	}

	header("Content-type: image/png");
	imagepng($imagen);
	imagedestroy($imagen);
?>
figura figura figura figura

Vemos adjunta una imagen generada con este código, que se corresponde con una de las figuras de la primera imagen (la que encabeza el apunte), con la diferencia que le pusimos un borde negro. También vemos las siluetas del resto de figuras de la misma imagen aunque sin colorear. Esas siluetas se generan cuando no se define un color de relleno.

Nótese que el cuadrado se genera con el parámetro shape=rect, pero nuestro capturador de áreas solo obtiene figuras poligonales (shape=poly), pero son cuatro coordenadas y basta con eliminar las coordenadas pares (o impares) para obtener las coordenadas necesarias para el rectángulo.

Zona de comentarios

Este apunte aún no tiene comentarios.

Evaluación

Valoración de esta página: (apunte.54) valor

Valoración evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar

Respuesta: Zona de mensajes (proceso de evaluación)

Historial de navegación

Esta página ha sido visitada en 7655 ocasiones


Disponemos de rss sindicar

Y del Mapa del sitio, además del sitemap.xml.


Aquí podemos encontrar los apuntes más visitados.

"Top 10" reemplaza a la sección Últimos apuntes.


Una buena forma de buscar un apunte es a partir de su categoría.


También es posible buscar apuntes por medio de las etiquetas (tags).


Hemos decidido poner al alcance de todos algunos comodines.

Adjuntamos una versión reducida del "buscador interno" que vemos en la lista anterior:

Buscar en apuntes

También estamos recopilando antiguas páginas del sitio.


Desde este recuadro se puede hacer una búsqueda cronológica.


Se puede crear una postal nueva desde el enlace del sector "Otras páginas del dominio", o editar la que sale en el recuadro, pulsando sobre ella..

http://www.pepemolina.com/postales/Fondos/FONDO010.gif
http://www.pepemolina.com/postales/Navidad/TgC_Navidad_31.gif
http://www.pepemolina.com/postales/Navidad/snow_anm.gif
http://www.pepemolina.com/postales/Navidad/xmastree2.gif
enlace a la postal
Copyright © 2002-2024 www.pepemolina.com
RSS rss | Ver Mapa del sitio