09 de Septiembre de 2010

Notas Espacio Programación

galería de imágenesvideo
AUTOR: Andrés Fernández
FECHA: 13/2/2009
LECTURAS:2425
Buscar Notas
volver
Efecto Reflejo en PHP

Efecto Espejo en PHP

Vimos cómo hacerlo con javascript y con flash: le toca el turno a PHP
Navegando me encontré un script php que permite generar un efecto de reflejo como el de los siguientes ejemplos:

Altura del reflejo igual a la de la de la imagen:
imagen
reflejo

Código utilizado (altura del reflejo igual a la de la imagen):
<img src="ejemplos/img/6.jpg" /><br /><img src="ejemplos/reflection.php?im=img/6.jpg" />


Altura del reflejo igual al 50% de la de la imagen:
imagen
reflejo

Código utilizado (altura del reflejo igual al 50% de la de la imagen):
<img src="ejemplos/img/17.jpg" /><br /><img src="ejemplos/reflection.php?im=img/17.jpg&amp;porcentaje=50" />


Altura del reflejo igual al 20% de la de la imagen:
imagen
reflejo

Código utilizado (altura del reflejo igual al 20% de la de la imagen):
<img src="ejemplos/img/9.jpg" /><br /><img src="ejemplos/reflection.php?im=img/9.jpg&amp;porcentaje=20" />


En todos los casos el reflejo es creado mediante el archivo reflection.php, al cual le pasamos como parámetros la ruta de la imagen -variable im- y el porcentaje de imagen que queremos reflejar -variable porcentaje-. El código de ese archivo php es el siguiente:

<?php
/*---- credits: http://www.pixel2life.com/publish/tutorials/928/php_gd_image_reflections/ ----*/
header('content-type: image/jpeg');
$im $_GET['im']; // The input image
$porcentaje=isset($_GET['porcentaje'])?$_GET['porcentaje']:100;
$size getimagesize($im);
$rH $size[1]*$porcentaje/100;// Reflection height
$tr 0// Starting transparency
$div 0// Size of the divider line
$w $size[0];
$h $size[1];
$im imagecreatefromjpeg($im);
$li imagecreatetruecolor($w1);
$bgc imagecolorallocate($li255255255); // Background color
imagefilledrectangle($li00$w1$bgc);
$bg imagecreatetruecolor($w$rH);
$wh imagecolorallocate($im,255,255,255);
$im imagerotate($im, -180$wh);
imagecopyresampled($bg$im0000$w$h$w$h);
$im $bg;
$bg imagecreatetruecolor($w$rH);
for (
$x 0$x $w$x++) {
    
imagecopy($bg$im$x0$w-$x01$rH);

$in 100/$rH;
for(
$i=0$i<=$rH$i++){
    if(
$tr>100$tr 100;
    
imagecopymerge($bg$li0$i00$w1$tr);
    
$tr+=$in;
}
imagecopymerge($bg$li0000$w$div100); // Divider
imagejpeg($bg);
imagedestroy($im);
imagedestroy($li);
?>

Home - Quiénes Somos - Portfolio - Espacio Diseño - Espacio Programación - Capacitación - Contacto - RSS - XHTML 1.0