logoExtra: recorte_circular

Descripción: Creación de recortes circulares desde una imágen.


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

Rollover en mapa: Creando recortes circulares
En un anterior apunte: Rollover en mapa. Caso de estudio, hemos mostrado como crear un resalte circular con cierta facilidad, pero tal vez no nos sea de utilidad para nuestro cometido. Ahora en base a aquel código, crearemos un recorte en base al código facilitado.
// Descripción para sindicación:
/*
    [rss]Creación de recortes circulares desde una imágen.[/rss]
*/
$ancho = $_GET["ancho"];
$alto = $_GET["alto"];
$x = $_GET["x"];
$y = $_GET["y"];
$diametromenor = (int) $_GET["radio"] * 2;
$diametromayor = ((int) $_GET["grosor"] * 2) + $diametromenor;
$id = $_GET["id"];
$sql = "select url, tipo from $tabla_imagenes where id='$id'";
$res = mysql_query($sql);
if ($res)    {
    if (mysql_num_rows($res) > 0)    {
        $codigo_imagen = file_get_contents($diario_includes.mysql_result($res, 0, "url"));
        $original = imagecreatefromstring($codigo_imagen);
        $original_ancho = imagesX($original);
        $original_alto = imagesY($original);
        $imagen = imagecreatetruecolor($ancho, $alto);
        imagecopyresampled($imagen, $original, 0, 0, 0, 0, $ancho, $alto, $original_ancho, $original_alto);
    }
}

$figura = imagecreatetruecolor($ancho, $alto);
$fondo = imagecolorallocate($figura, 255, 255, 255);
imagefill($figura, 0, 0, $fondo);
$rojo = imagecolorallocate($figura, 255, 0, 0);
imagefilledellipse($figura, $x, $y, $diametromayor, $diametromayor, $rojo);
$negro = imagecolorallocate($figura, 0, 0, 0);
imagefilledellipse($figura, $x, $y, $diametromenor, $diametromenor, $negro);
imagecolortransparent($figura, $negro);


imagecopymerge($imagen, $figura, 0, 0, 0, 0, $ancho, $alto, 100);
$transparente = imagecolorallocate($imagen, 255, 255, 255);
imagecolortransparent($imagen, $transparente);


header("Content-Type: image/png");
//imagepng($figura);
imagepng($imagen);
imagedestroy($imagen);
imagedestroy($figura);
unset($css);
unset($body);

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

Zona de comentarios

Esta extra aún no tiene comentarios.

Evaluación

Valoración de esta página: (extra.recorte_circular) 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