Efecto 3DReflect para Imaset

15 de Diciembre del 2007 Escrito por Alex Barros

Acado de crear un nuevo efecto para Imaset, el 3DReflect. Si estás usando la versión 2.1, podrás utilizar este nuevo filtro subiendo un pequeño archivo XML a la carpeta “/filters” del plugin.

El filtro

El efecto es similar al ya existente de Reflejo. La diferencia es que este efecto es tridimensional, dando un efecto de profundidad.

Cielo Abstracto

Descargas

Descarga el archivo de filtro 3DReflect y súbelo a la carpeta “/filters” para empezar a disfrutarlo.Se adjunta también el archivo de idioma Español es_ES.php, para tener la traducción de los parámetros de este nuevo plugin (súbelo a tu carpeta “/lang”).

Código fuente

Este es el código fuente del archivo XML. Todabía no he escrito la API para desarrollar filtros de Imaset, pero con este ejemplo, puede que alguien ya se atreva a intentar algo.

  1. <filter>
  2.         <name>3DReflect</name>
  3.         <category>decoration</category>
  4.         <parameters>
  5.                 <pa>$s=30</pa>
  6.                 <pa>$oi=60</pa>
  7.                 <pa>$pr=25</pa>
  8.         </parameters>
  9.         <function>
  10.                 //controlo los limites
  11.                 $s = $imaset->lim($s,300,1); //tamaño
  12.                 $oi = $imaset->lim($oi,100,5); //opacidad inicial
  13.                 $pr = $imaset->lim($pr,100,0); //profundidad
  14.  
  15.                 $sx = imagesx($im);
  16.                 $sy = imagesy($im);
  17.                 if($s>$sy) $s = $sy-1;
  18.                
  19.                 $x = $sx+2*$pr;
  20.                 $y = $sy+$s;
  21.  
  22.                
  23.                 $reflekt = imagecreatetruecolor($x,$y);
  24.                 $color = imagecolorallocate($reflekt, $imaset->Red,$imaset->Green,$imaset->Blue); //Fondo
  25.                 imagefilledrectangle($reflekt, 0, 0, $x, $y, $color); //Relleno el fondo       
  26.                 imagecopy($reflekt, $im, $pr, 0, 0, 0, $sx, $sy);
  27.  
  28.                 $reflekt = $imaset->resize($reflekt,‘200%’,); //resize al doble por mejorar calidad
  29.  
  30.                 //hago el efecto conico de reflejo
  31.                 for($i=0;$i<=$s*2;$i++)
  32.                         imagecopyresampled($reflekt, $im, $pr*2-($pr*$i/$s), $sy*2+$i, 0, $sy-(round($i/2)+1), $sx*2+2*($pr*$i/$s), 1, $sx, 1);
  33.                
  34.                 $reflekt = $imaset->resize($reflekt,‘50%’,); //resize a la mitad
  35.  
  36.                 //finalmente creo el efecto transparencia con una imagen comodin
  37.                 $bla = imagecreatetruecolor($x,1);
  38.                 $color = imagecolorallocate($bla, $imaset->Red,$imaset->Green,$imaset->Blue); //Fondo
  39.                 imagefilledrectangle($bla, 0, 0, $x, 1, $color); //Relleno el fondo
  40.                
  41.                 for($i=0;$i<$s;$i++)
  42.                         imagecopymerge($reflekt, $bla, 0, $sy+$i, 0, 0, $x, 1, 100-round($oi-($i*$oi/$s)));
  43.  
  44.                 return $reflekt;
  45.         </function>
  46. </filter>

Categorias: Código, Imagen Digital, Plugins, Wordpress |

Ya hay un comentario, se el segundo!

del.icio.us meneame.net RSS

Buscar:



Tagcloud

Entradas Recientes

Meta: