Hoy vamos a ver una función que nos permite aplicarle un efecto polariod a una imagen.
La función es:
<?php /** * Función para aplicar el efecto polaroid a una imagen. * * @param string $path Ruta de la imagen * @param float $giro Angulo de giro de la imagen * @param int $rfondo componente rojo del color de fondo * @param int $gfondo componente verde del color de fondo * @param int $bfondo componente azul del color de fondo * @return resource imagen con el efecto polaroid aplicada */ function efectoPolaroid($path, $giro, $rfondo, $gfondo, $bfondo) { // Cargamos la imagen a la que queremos aplicar el efecto polaroid $imgBase = imagecreatefromjpeg($path); //Creamos una nueva imagen. $img = imagecreatetruecolor(imagesx($imgBase) + 25, imagesy($imgBase) + 65); $blanco = imagecolorallocate($img, 255,255,255); //Rellenamos la nueva imagen de blanco imagefill($img,0,0, $blanco); //Copiamos la imagen a la que queremos aplicar el efecto polariod en nuestra nueva imagen. imagecopy($img, $imgBase, 11, 11, 0, 0, imagesx($imgBase), imagesy($imgBase)); //Eliminamos nuestra imagen de memoria, ya que ya no hace falya imagedestroy($imgBase); //Color del borde $color = imagecolorallocate($img, 192,192,192); //Le ponemos un borde gris a nuestra imagen. imagerectangle($img, 0,0, imagesx($img)-4, imagesy($img)-4, $color); //Colores para la sombra $gris1 = imagecolorallocate($img, 208,208,208); $gris2 = imagecolorallocate($img, 224,224,224); $gris3 = imagecolorallocate($img, 240,240,240); //Le añadimos una pequeña sombra imageline($img, 2, imagesy($img)-3, imagesx($img)-1,imagesy($img)-3,$gris1); imageline($img, 4, imagesy($img)-2, imagesx($img)-1,imagesy($img)-2,$gris2); imageline($img, 6, imagesy($img)-1, imagesx($img)-1,imagesy($img)-1,$gris3); imageline($img, imagesx($img)-3, 2, imagesx($img)-3,imagesy($img)-4,$gris1); imageline($img, imagesx($img)-2, 4, imagesx($img)-2,imagesy($img)-4,$gris2); imageline($img, imagesx($img)-1, 6, imagesx($img)-1,imagesy($img)-4,$gris3); //Rotamos la imagen $fondo = imagecolorallocate($img, $rfondo, $gfondo, $bfondo); $rotatedImg = imagerotate($img, $giro, $fondo); //Destruimos la imagen con la que hemos estado trabajando imagedestroy($img); //Devolvemos la imagen rotada return $rotatedImg; } ?>
Aplicando la función a la siguiente imagen, con angulo de rotación -25º y color de fondo blanco:
Nos queda esta otra:
Ahora la descarga del archivo con la función con el efecto polaroid:
Código con la función del efecto polaroid
Artículos relacionados:
Tags: efecto polaroid, GD, PHP