TutoBlog

20 mayo 2011

Cómo crear en PHP un PNG con fondo transparente con la GDLIB

Filed under: General — joan16v @ 9:55
Tags:
 $fuente = @imagecreatefromjpeg(str_replace(" ", "%20", $_GET['foto']));
if (!$fuente) {
    $fuente = @imagecreatefromgif(str_replace(" ", "%20", $_GET['foto']));
}
if (!$fuente) {
    $fuente = @imagecreatefrompng(str_replace(" ", "%20", $_GET['foto']));
}
$imgAncho = imagesx($fuente);
$imgAlto = imagesy($fuente);
$canvasAncho = 176;
$canvasAlto = 125;
$max_an = 200;
$max_al = 150;
$x = $imgAncho;
$y = $imgAlto;
if ($imgAncho > $max_an || $imgAlto > $max_al) {
    if ($imgAlto >= $imgAncho) {
        $y = $max_al;
        $ratio = $y / $imgAlto;
        $x = $imgAncho * $ratio;
        if ($x > $max_an) {
            $x1 = $max_an;
            $ratio = $x1 / $x;
            $y1 = $y * $ratio;
            $x = $x1;
            $y = $y1;
        }
    } else {
        $x = $max_an;
        $ratio = $x / $imgAncho;
        $y = $imgAlto * $ratio;
        if ($y > $max_al) {
            $y1 = $max_al;
            $ratio = $y1 / $y;
            $x1 = $x * $ratio;
            $x = $x1;
            $y = $y1;
        }
    }
}
$canvas = imagecreatetruecolor($canvasAncho, $canvasAlto);
$blanco = imagecolorallocate($canvas, 255, 255, 255);
imagefill($canvas, 0, 0, $blanco);
$xCambasI = (int) (($canvasAncho - $x) / 2);
$yCambasI = (int) (($canvasAlto - $y) / 2);
ImageCopyResampled($canvas, $fuente, $xCambasI, $yCambasI, 0, 0, $x, $y, $imgAncho, $imgAlto);
header("Content-type: image/jpeg");
imageJpeg($canvas, "", 100);

Los mejores scripts para PHP:

Los mejores scripts para PHP

Anuncios

Crea un blog o un sitio web gratuitos con WordPress.com.