Hemos mostrado como crear esquinas redondeadas en las imágenes, pero ahora tengo que hacer una orla, y necesito un marco ovalado con borde negro.
IV Asamblea de la AEC: IV Asamblea General de la Asociación Española de Caricaturistas
¿Qué puede haber imprevisto para el que nada ha previsto?
Paul Ambroise Valéry, escritor francés (1871-1945).
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.
Hemos mostrado como crear esquinas redondeadas en las imágenes, pero ahora tengo que hacer una orla, y necesito un marco ovalado con borde negro.
La técnica que hemos usado es similar al anterior sistema, aunque en vez de superponer cuatro imágenes en las cuatro esquinas de las fotos, simplemente creamos una imagen con la forma oval transparente con su borde, y la superponemos a la original, para luego transparentar el color de las esquinas.
El tipo de imagen resultante tendrá que permitir transparencias, pero también alta definición, así que nos hemos decantado por el formato png.
El código real puede verse en el visor de código que acabamos de presentar en el anterior apunte: marcOval. El grosor del marco puede definirse, pero si no fuese el caso, se quedará en el 15% del radio menor de las dimensiones de las foto.
A continuación mostramos el código:
$foto = imagecreatefromstring(file_get_contents($_GET["url"])); $ancho = imagesX($foto); $alto = imagesY($foto); $anchi = ($ancho % 2 == 1) ? $ancho : $ancho - 1; $alti = ($alto % 2 == 1) ? $alto : $alto - 1; $fondo = imagecolorallocate($foto, 255, 255, 255); $mX = (int) $ancho / 2; $mY = (int) $alto / 2; $menor = ($mX < $mY) ? $mX : $mY; $grueso = (isset($_GET["grosor"])) ? (int) $_GET["grosor"]: (int) ($menor / 15); $grosor = (is_integer($grueso)) ? $grueso: (int) ($menor / 15); $figura = imagecreatetruecolor($ancho, $alto); $blanco = imagecolorallocate($figura, 255, 255, 255); imagefill($figura, 0, 0, $blanco); $negro = imagecolorallocate($figura, 0, 0, 0); $rojo = imagecolorallocate($figura, 255, 0, 0); imagefilledellipse($figura, $mX, $mY, $anchi, $alti, $negro); imagefilledellipse($figura, $mX, $mY, $anchi - $grosor, $alti - $grosor, $rojo); imagecolortransparent($figura, $rojo); imagecopymerge($foto, $figura, 0, 0, 0, 0, $ancho, $alto, 100); imagecolortransparent($foto, $fondo); header("Content-Type: image/png"); imagepng($foto); imagedestroy($figura); imagedestroy($foto);
Entre las pocas cosas que podemos comentar del código, es que el borde se le resta a la imagen, aunque sea un detalle poco relevante.
Este apunte aún no tiene comentarios.
Valoración de esta página: (apunte.65)
Esta página ha sido visitada en 11315 ocasiones
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:
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..