Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿Cómo reescalar una imagen?

Estas en el tema de ¿Cómo reescalar una imagen? en el foro de PHP en Foros del Web. Hola a todos, he hecho una página básica en .php con un formulario para que los usuarios puedan añadir elementos a un juego que yo ...
  #1 (permalink)  
Antiguo 17/09/2014, 01:34
 
Fecha de Ingreso: septiembre-2011
Ubicación: Donostia
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta ¿Cómo reescalar una imagen?

Hola a todos,
he hecho una página básica en .php con un formulario para que los usuarios puedan añadir elementos a un juego que yo he creado. El caso es que no soy muy diestro en php y pese a que todo está funcionando perfectamente, ahora me veo en el caso de que no consigo reescalar una imagen... estas tienen que ser de 400x400 y tras haber probado de muchísimas maneras, sólo consigo guardarlas al tamaño original, nada de reescalado.

¿Alguien podría indicarme un link, tuto o echarme un cable para solucionar esto?

Dejo aquí el código que tengo para que veáis cómo he hecho la parte de la imagen y a ver sí alguien me echa un capote por que quiero imaginarme que no puede ser tan complicado reescalar una imagen y tengo que estar haciendo cagada tras cagada

Código PHP:
$allowedExts = array("gif""jpeg""jpg""png");
    
$temp explode("."$_FILES["file"]["name"]);
    
$extension end($temp);

    if (((
$_FILES["file"]["type"] == "image/gif")
        || (
$_FILES["file"]["type"] == "image/jpeg")
        || (
$_FILES["file"]["type"] == "image/jpg")
        || (
$_FILES["file"]["type"] == "image/pjpeg")
        || (
$_FILES["file"]["type"] == "image/x-png")
        || (
$_FILES["file"]["type"] == "image/png"))
        && (
$_FILES["file"]["size"] < 1000000)
        && 
in_array($extension$allowedExts)) {
        if (
$_FILES["file"]["error"] > 0) {
            echo 
"Return Code: " $_FILES["file"]["error"] . "<br>";
        } else {
            if (
file_exists("assets/img/elementos/" $_FILES["file"]["name"])) {
                echo 
$_FILES["file"]["name"] . " already exists. ";
            } else {
                
move_uploaded_file($_FILES["file"]["tmp_name"],"assets/img/elementos/" $_FILES["file"]["name"]);
            }
        }
    } else {
        echo 
"Invalid file";
    } 
  #2 (permalink)  
Antiguo 17/09/2014, 01:42
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: ¿Cómo reescalar una imagen?

Hola! te dejo dos enlaces por si te sirven. En uno explican como hacerlo utilizando la clase Imagick:

http://blog.davidrojo.es/2011/04/escalando-imagenes-con-php/

y en el otro usando directamente funciones de PHP:

http://www.alvaropita.es/redimensionar-imagen-con-php-y-gd/

Habrán mil formas más, pero quizá te sirva alguna de las dos. Yo me decantaría por la primera... si hay una clase que lo hace, para qué complicarse y reinventar la rueda? ;)

Espero que te sirva alguna de ellas!
  #3 (permalink)  
Antiguo 17/09/2014, 03:02
 
Fecha de Ingreso: septiembre-2011
Ubicación: Donostia
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: ¿Cómo reescalar una imagen?

Hola json,
en un segundo link del primero que me has pasado he encontrado la solución y ya lo tengo funcionando correctamente. Mil gracias!!!

Ahora, abusando un poco de tu ayuda, me gustaría preguntarte sí sabes de alguna manera de ofrecerle al usuario un crop de la imagen, es decir para poder recortarla, es que no se ni que buscar...

Yo ahora con el formulario subo una imagen y si no es cuadrada (tiene que ser así) la reescalo, pero claro, dejar eso en manos de cualquier usuario gañán es un peligo XD

Es por eso que quiero ofrecerles la posibilidad de recortar la imagen forzando un formato 1:1 (cuadrado), ¿sabes de algún recurso para ello?

De todas formas, mil gracias y un saludo tío.
  #4 (permalink)  
Antiguo 17/09/2014, 07:35
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: ¿Cómo reescalar una imagen?

De nada! Me alegro que te haya servido!

Forma de ofrecerle un crop al usuario seguro que ya existe algo hecho y alguien lo ha encapsulado en alguna clase. Para este tipo de recursos una página muy útil es PHPClasses (no sé si ya la conecerías), pero tienes clases escritas en PHP. He buscado ahí y me ha salido:

http://www.phpclasses.org/search.html?words=crop+image&x=0&y=0&go_search=1

Y si no te sirve alguna de esas, puedes buscar algo que use jQuery o Mootools (si usas alguno de esos dos frameworks de javascript). Con una búsqueda rápida de "crop image jquery" me ha salido esta lista de plugins en los que puedes ver si hay alguno que te sirva:

http://www.jqueryrain.com/demo/jquery-crop-image-plugin/

Bueno, espero que encuentres algo por ahí. Muchas veces, para este tipo de acciones muy comunes existen clases ya hechas (y probadas) que podemos utilizar, ahorrándonos tiempo de desarrollo y dolores de cabeza jeje.

Etiquetas: formulario, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:46.