Ver Mensaje Individual
  #19 (permalink)  
Antiguo 21/12/2011, 07:00
furoya
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Aplicar filtro o similar sobre un elemento SHAPE de una imagen

Tomando un poco de los tres últimos párrafos, quedaría algo así

Código:
<html xmlns:v="urn:schemas-microsoft-com:vml">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>DESTACA PARTE DE IMAGEN ACTIVA.</title>
<style type=text/css>
v\:* {behavior: url(#default#VML); }

body {font-size: 100%; background: black; color: red; 
font-weight: bold; }

.oscuro { opacity: .6; filter: 
progid:DXImageTransform.Microsoft.Alpha(opacity=60);}
.claro { opacity: 1; filter: 
progid:DXImageTransform.Microsoft.Alpha(opacity=100);}

</style>

<script type=text/javascript> 

function inicia(){

if(document.getElementById('canvas').getContext) {
var imagenA = document.getElementById('imagenFrente');
var imagenB = document.getElementById('mascara0');
var ctx = document.getElementById('canvas').getContext('2d');

ctx.drawImage(imagenB, 365, 25);
ctx.globalCompositeOperation = 'source-atop';
ctx.beginPath();
ctx.drawImage(imagenA, 0, 0);
ctx.close();
}

else{
capa0.filters.item(0).Apply(); // aplica el filtro a la primera capa
capa0.innerHTML = capa1.innerHTML; // agrega la segunda capa
}

}

function destaca0() {
document.getElementById("imagenFondo").className = "claro";
}

function destaca1() {
document.getElementById("imagenFondo").className = "oscuro";
}

onload = inicia
</script>
</head>

<BODY>
<h1>Destaca una parte de la imagen con área activa
oscureciendo el resto. </h1>

<div style="width: 608px; height: 464px; position: relative; " id="caja">

<img id="imagenFondo" src="imagMetropolisTorresRios/hddm01.jpg" 
style="position: absolute; top:0; left: 0; width: 608px; height: 464px; " class="claro">


<div id="capa0"
style="filter: 
progid:DXImageTransform.Microsoft.Compositor(function=5, duration=9); 
position: absolute; top: 0; left: 0; width: 608px; height: 464px; ">

<canvas id="canvas" style="position: absolute; top:0; left: 0; width: 608px; height: 464px; display inline;" width="608" height="464">

<![if !IE]>
<img id="mascara0" src="http://img215.imageshack.us/img215/6269/mascarahuesuda2.gif">
<![endif]>

<img style="position: absolute; width: 608px; height: 464px; "
src="http://img593.imageshack.us/img593/4725/hddm01.jpg" 
id="imagenFrente">
</canvas>
</div>

<map name="mapeado">

<area shape="poly" coords=
"436,131,426,135,414,140,398,144,388,128,382,137,369,149,361,146,363,130,376,120,389,110,389,92,382,82,388,51,412,23,446,27,463,38,474,66,465,99,447,106,447,126," 
href="http://imageshack.us/photo/my-images/593/hddm01.jpg/" onmouseover="destaca1()" onmouseout="destaca0()" title="Huesuda." >
</map>

<img src="http://img42.imageshack.us/img42/6156/transparente.gif" style="position: absolute; top:0; left: 0; border: 0; width: 608px; height: 464px; " usemap="#mapeado">

</div>

<div id="capa1" style="display: none">
<img id="mascara0" src=
"http://img215.imageshack.us/img215/6269/mascarahuesuda2.gif" 
style="position: absolute; top:25px; left:365px; background-color: transparent; ">
</div>

<p style="font-size: 110%"></p>
</body>
</html>
que sigue sin ser definitivo, y está bastante desprolijo, pero se acerca más a un efecto usable en una página real. La "máscara" es un GIF 'real', ya que no tengo un servidor donde subir una versión con imágenes creadas en PHP; y usé sólo una para no complicarlo demasiado (en canvas es un infierno, no puedo hacer andar el clearRect(0,0,608,464) para reescribir). El área activa es un shape="poly" real y usa el método "sánguche" : todas las capas están entre el "fondo" y el "mapa", para no tener problemas con los eventos.


Aquí los dejo. Por ahora es lo que hay. Hasta que —insisto— a alguien se le ocurra otra idea mejor.



❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖



Sobre VML.

Como hacer graficas de pastel y de barras

askii (HTML) y binario (imagen) en una misma página

vml con html (xml). codigo raro.

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

http://www.w3.org/TR/NOTE-VML

http://www.sjsu.edu/faculty/watkins/vml.htm


Sobre filtro chroma, compositor y globalCompositeOperation.

Letras o imagenes transparentes

Barra de desplazamiento personalizada...

Efecto Máscara / Marquesina

Texto transparente en Firefox (como filter chroma)


Banner en scrollbar.


poner una imagen al cursor

http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx (chroma)

http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx (compositor)
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx (funciones compositor)


Sobre filtro light.

http://msdn.microsoft.com/en-us/libr...,printer).aspx


Sobre recortes PHP.


Mapa con iluminación de zonas




Tema que dio origen a las actualizaciones :
Cambiar de color un <area> en un mapa de imagen?

Imágenes :