
27/07/2007, 05:25
|
 | | | Fecha de Ingreso: abril-2004 Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años, 11 meses Puntos: 0 | |
Resize de imagenes PNG y GIF transparente... HOla amigos,
estoy haciendo un uplaod de imagenes, pero tengo un problema con los thumbnails que creo...
si la imagen es transparente (PNG o GIF) cuando crea el thumbnail, sale el fondo negro...
el código es el siguiente...
Código:
//miniaturas
function nn_miniaturas ($ruta_original, $ruta_destino, $lado, $px, $cuadrada='no') {
//$original = @imagecreatefromjpeg($ruta_original); //creo una copia de la imagen original
$extension = split("[/.]", $ruta_original);
// crear imagen desde original
$extension = strtolower(end($extension));
switch($extension){
case 'jpeg': $original = @imageCreateFromJPEG($ruta_original); break;
case 'jpg': $original = @imageCreateFromJPEG($ruta_original); break;
case 'png': $original = @imageCreateFromPNG($ruta_original); break;
case 'gif': $original = @imageCreateFromGIF($ruta_original); break;
}
$alto_actual = @imagesy($original); //calculo el alto
$ancho_actual = @imagesx($original); //calculo el ancho
//segun se especifique ancho o alto, se calcula el otro lado.
if ($lado == 'ancho') {
$resultado = $alto_actual / $ancho_actual;
$alto = $px * $resultado;
$ancho = $px;
} elseif ($lado == 'alto') {
$resultado = $ancho_actual / $alto_actual;
$ancho = $px * $resultado;
$alto = $px;
} else {
echo "Debes especificar si la medida que has introducido es el alto o el ancho de la imagen. <br />";
}
//para encajar bien la imagen vuelve a calcular los lados de la nueva.
if ($cuadrada == 'cuadrada' and $lado == 'alto') {
$imagen = @imagecreatetruecolor($px,$px);
$resultado = $alto / $ancho;
$ancho = $resultado * $ancho;
$imagen = @imagecreatetruecolor($px, $ancho);
} elseif ($cuadrada == 'cuadrada' and $lado == 'ancho') {
$resultado = $ancho / $alto;
$alto = $resultado * $alto;
$imagen = @imagecreatetruecolor($px, $alto);
} else {
$imagen = @imagecreatetruecolor($ancho,$alto);
}
@imagecopyresampled ($imagen,$original,0,0,0,0,$ancho,$alto,$ancho_actual,$alto_actual);
echo($extension);
switch($extension){
case 'jpeg': @imagejpeg($imagen, $ruta_destino,95); break;
case 'jpg': @imagejpeg($imagen, $ruta_destino,95); break;
case 'png': @imagepng($imagen, $ruta_destino,95); break;
case 'gif': @imagegif($imagen, $ruta_destino,95); break;
}
return $ruta_destino;
}
la forma de usarlo...
Código:
$new_image = nn_miniaturas($img_origen, $img_destino, 'alto', 159);
alguien sabe alguna manera de solucionarlo...? Me lleva loco el tema!!
Mil gracias..
__________________ Señoooraaaa!! Que camisetas!!! "Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________ |