logoExtra: miniOval

Descripción:

Este comodín es una mejora de marcOval (marcos ovalados en las imágenes).

La forma de uso es:

diario.jocker.php?extra=miniOval&url=[url_de_la_imagen]&grosor=[grosor_del_marco]&borde=[color_del_borde]&max=[mayor_dimensión]


A continuación mostramos los apuntes asociados a este extra:

Marcos ovalados configurables
Podemos ver en la esquina superior izquierda de esta página mi foto en miniatura con marco ovalado y borde de color.
// Descripción para sindicación:
/*
    [rss]<p>Este comodín es una mejora de marcOval (marcos ovalados en las imágenes).</p>
    <p>La forma de uso es:</p>
    <p>diario.jocker.php?extra=miniOval&amp;url=<b>[url_de_la_imagen]</b>&amp;grosor=<b>[grosor_del_marco]</b>&amp;borde=<b>[color_del_borde]</b>&amp;max=<b>[mayor_dimensión]</b></p>[/rss]
*/

function rgbColor($fondo)    {
    $red = (int) hexdec(substr($fondo, 0, 2));
    $green = (int) hexdec(substr($fondo, 2, 2));
    $blue = (int) hexdec(substr($fondo, 4, 2));
    return array($red, $green, $blue);
}

$fondo = $_GET["borde"];
if (strlen($fondo) != 6)
    $borde = rgbColor("000000");
else
    $borde = rgbColor($fondo);

$foto = imagecreatefromstring(file_get_contents($_GET["url"]));

$ancho = imagesX($foto);
$alto = imagesY($foto);

$apaisada = ($ancho > $alto);
if (isset($_GET["max"]))
    $maxi = (int) $_GET["max"];
else
    $maxi = ($apaisada) ? $ancho : $alto;

$ratio = ($apaisada) ? $alto / $ancho : $ancho / $alto;

$anch = ($apaisada) ? $maxi : $maxi * $ratio;
$alt = ($apaisada) ? $maxi * $ratio : $maxi;

//echo "ancho:$ancho, alto: $alto, ratio [$ratio], max: $maxi, anch: $anch, alt: $alt";

$anchi = ($anch % 2 == 1) ? $anch : $anch - 1;
$alti = ($alt % 2 == 1) ? $alt : $alt - 1;
$fondo = imagecolorallocate($foto, 255, 255, 255);
$mX = (int) $anch / 2;
$mY = (int) $alt / 2;
$menor = ($mX < $mY) ? $mX : $mY;

$fotico = imagecreatetruecolor($anch, $alt);
$blanc = imagecolorallocate($fotico, 255, 255, 255);
imagefill($fotico, 0, 0, $blanc);
imagecolortransparent($fotico, $blanc);
imagecopyresampled($fotico, $foto, 0, 0, 0, 0, $anch, $alt, $ancho, $alto);


$grueso = (isset($_GET["grosor"])) ? (int) $_GET["grosor"]: (int) ($menor / 15);
$grosor = (is_integer($grueso)) ? $grueso: (int) ($menor / 15);

$figura = imagecreatetruecolor($anch, $alt);
$blanco = imagecolorallocate($figura, 255, 255, 255);
imagefill($figura, 0, 0, $blanco);
$bordes = imagecolorallocate($figura, $borde[0], $borde[1], $borde[2]);
$rojo = imagecolorallocate($figura, 1, 0, 0);
imagefilledellipse($figura, $mX, $mY, $anchi, $alti, $bordes);
imagefilledellipse($figura, $mX, $mY, $anchi - $grosor, $alti - $grosor, $rojo);
imagecolortransparent($figura, $rojo);
imagecopymerge($fotico, $figura, 0, 0, 0, 0, $anch, $alt, 100);
imagecolortransparent($foto, $fondo);

header("Content-Type: image/png");

imagepng($fotico);
imagedestroy($figura);
imagedestroy($fotico);
imagedestroy($foto);
unset($css);
unset($body);

Este código ha sido leído en 72 ocasiones.

Zona de comentarios

Esta extra aún no tiene comentarios.

Evaluación

Valoración de esta página: (extra.miniOval) valor

Valoración evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar

Respuesta: Zona de mensajes (proceso de evaluación)

Listados: imágenes, categorías, etiquetas, extras | Anuarios: 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 | Otros enlaces: buscador