Usar libreria gd, para redimensionar imagenes.

Iniciado por den_22, 22 Abril 2010, 16:03 PM

0 Miembros y 1 Visitante están viendo este tema.

den_22

Hola que tal, les comento tengo este codigo para subir imagenes, todo bien se hace la insercion a la bd, pero que pasa... me gustaria poder redimensionar esas imagenes para que se muestren por ejemplo en el perfil. Cómo se podria usar la libreria en este codigo?, o se usa aparte. Alguien podria guiarme?

Gracias de antemano, den_22

Dejo el codigo:

Código (php) [Seleccionar]

<?php
error_reporting
(E_ALL E_NOTICE);
session_name('pLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();

include(
"connect.php");


$id=$_SESSION['id'];


 
define ("MAX_SIZE","500"); 


 function 
getExtension($str) {
         
$i strrpos($str,".");
         if (!
$i) { return ""; }
         
$l strlen($str) - $i;
         
$ext substr($str,$i+1,$l);
         return 
$ext;
 }



 
$errors=0;

 if(isset(
$_POST['Submit'])) 
 {
 

 
$image=$_FILES['image']['name'];
 

 
if ($image
 
{

 
$filename stripslashes($_FILES['image']['name']);
 
  
$extension getExtension($filename);
 
$extension strtolower($extension);

 if ((
$extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
 
{
//print error message
 
echo '<h1>No es una imagen!</h1>';
 
$errors=1;
 
}
 
else
 
{



 
$size=filesize($_FILES['image']['tmp_name']);

//comparamos el tamaño definido con este
if ($size MAX_SIZE*1024)
{
echo '<h1>Has excedido el limite permitido!</h1>';
$errors=1;
}


$image_name=time().'.'.$extension;

$newname="images/".$image_name;
//verificamos si se subió la imagen, e imprimimos el error en todo caso
$copied copy($_FILES['image']['tmp_name'], $newname);
if (!
$copied
{
echo '<h1>No se ha podido subir la imagen!</h1>';
$errors=1;
}}}}

//Si no hay errores imprimir el mensaje 
 
if(isset($_POST['Submit']) && !$errors
 {
 
echo "<h1>El archivo subió correctamente</h1>";
mysql_query("
UPDATE prueba
SET picture='
$image_name'
WHERE id='
$_SESSION[id]'  ");
 }




den_22

Hola, me olvidaba, en el perfil tengo este codigo que redimensiona las imagenes, pero de acuerdo al ancho y alto que tengan.
Yo lo que busco es algo que pueda quedarse fijo como por ejemplo 200 x 200.

Código (php) [Seleccionar]
if ($picture != "") {

    $width1 = 400;
    $height1 = 400;
    $inf = @GetImageSize("images/" . $picture);
    $width2 = $inf[0];
    $height2 = $inf[1];
    $width = $width2;
    $height = $height2;
    if ($width > $width1) {
        $factor = round(($width1 / $width), 2);
        $width = $width1;
        $height = $height * $factor;
        $changed = 1;
    }
    if ($height > $height1) {
        $factor1 = round(($height1 / $height), 2);
        $height = $height1;
        $width = $width * $factor1;
        $changed = 1;
    }