Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/12/2008, 20:55
franco190453
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: como reducir tamano de imagenes con php

cherl_7:
Este codigo te reduce una imagen en el porcentaje que quieras,
te crea un "Thumbnail" de tamaño 187 x 187 pixeles y le dibuja una
linea roja al contorno de la imagen final.
Si logras manipular puedes hacer muchas cosas.

Cita:
<?php
//Tu Imagen
$imagen = 'papa.jpg';
//Obtener las dimensiones
list($ancho, $alto, $type, $attr) = getimagesize($imagen);
//Guardando la imagen en la memoria(Para Manipular con las librerias GD)
$miimagen = imagecreatefromjpeg($imagen);
//Estableciendo lo que queremos cortar de la imagen
if($ancho > $alto) {
$ladomasalto = "$ancho";
}else {
$ladomasalto = "$alto";
}
//Le vamos a quitar el 5% del lado mas grande
$reducirporcentage = 0.95;
$reducirancho = $ladomasalto*$reducirporcentage;
$reduciralto = $ladomasalto*$reducirporcentage;
//Obtenemos la coordenada del lado arriba-izquierdo
$coordenadas = array("x"=>(($ancho-$reducirancho)/2), "y"=>(($alto-$reduciralto)/2));
//Creamos el Thumbnail
$tamanothumb = 187;
$thumbnail = imagecreatetruecolor($tamanothumb, $tamanothumb);
imagecopyresampled($thumbnail, $miimagen, 0, 0, $coordenadas['x'], $coordenadas['y'], $tamanothumb, $tamanothumb, $reducirancho, $reduciralto);
//Creando las lineas
$anchodelinea = 2;
$margen = 0;
//Usar el photoshop para ver las variables con los colores correspondientes.
$verde = imagecolorallocate($thumbnail, 193, 0, 0); //Rojo=($thumbnail, 255, 0, 0)Blanco=255,255,255 Negro=0,0,0
//Si $i lo ponemos en 4 le hara cuatro lineas o marcos a la imagen
for($i=0; $i<2; $i++){
//Linea izquierda
imagefilledrectangle($thumbnail, $margen, $margen, $margen+$anchodelinea, $tamanothumb-$margen, $verde);
//Linea derecha
imagefilledrectangle($thumbnail, $tamanothumb-$margen-$anchodelinea, $margen, $tamanothumb-$margen, $tamanothumb-$margen, $verde);
//Linea de arriba
imagefilledrectangle($thumbnail, $margen, $margen, $tamanothumb-$margen-$anchodelinea, $margen+$anchodelinea, $verde);
//Linea de abajo
imagefilledrectangle($thumbnail, $margen, $tamanothumb-$margen-$anchodelinea, $tamanothumb-$margen-$anchodelinea, $tamanothumb-$margen, $verde);
$margen+=4;
}
//Salido Final
imagejpeg($thumbnail, "papax.jpg");
imagedestroy($thumbnail);
echo "<img src=\"papax.jpg\">";
?>
Saludos
Y estudia el script con mucho cuidado.
Franco