PHP - redimencionar imagen antes de subirla al servidor

 
Vista:
Imágen de perfil de Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

redimencionar imagen antes de subirla al servidor

Publicado por Eduardo (181 intervenciones) el 10/06/2024 23:44:33
hola a todos este codigo para subir fotos al servidor le he puesto codigo que he leido para redimencionar y bajar de peso a una imagen que se quiera cargara l servidor pero no me sirve
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
	$nAncho = 50;
	$nAlto = 50;
 
if (isset($_POST['subir'])) {
   $archivo = $_FILES['archivo']['name'];
   $tipo = $_FILES['archivo']['type'];
   $tamano = $_FILES['archivo']['size'];
   $temp = $_FILES['archivo']['tmp_name'];
 
   $imagen = imagecreatefromjpeg($archivo);
	$x = imagesx($imagen);
	$y = imagesy($imagen);
 
	$img = imagecreatetruecolor($nAncho, $nAlto);
	imagecopyresized($img, $imagen, 0, 0, 0, 0, $nAncho, $nAlto, $x, $y);
 
	imagejpeg($img, $imagenNueva);
 
 
 
        if (move_uploaded_file($temp, 'uploads/'.$img)){
            chmod('uploads/'.$img, 0777);
            echo '<div><b>Se ha subido correctamente la imagen.</b></div>';
            echo '<p><img src="uploads/'.$img.'"></p>';
        }
        else {
           echo 'Error al cargar';
        }
      }
?>

alguien que me ayude a poder implementar esto!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

redimencionar imagen antes de subirla al servidor

Publicado por Jefferson (209 intervenciones) el 11/06/2024 00:32:12
Hola Eduardo.

Con Imagick puedes hacerlo, yo me hice una clase que la puedes adaptar.

Como casi no uso move_uploaded_file() por medio de javascript capturo el base64 y eso es lo que envio a php,
luego retorno el base64 pero ya reducido.

Con esta clase tu veras lo que haces, si lo guardas en la BBDD o lo conviertes en Imagen de nuevo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class imgCompress
{
    public function compress($base64Image)
    {
        $imageData = base64_decode($base64Image);
        $image = new Imagick();
        $image->readImageBlob($imageData);
        $maxFileSize = 500 * 1024;
        $currentQuality = $image->getImageCompressionQuality();
        $imageSize = strlen($imageData);
        while ($imageSize > $maxFileSize) {
            $compressionFactor = $imageSize / $maxFileSize;
            $newQuality = $currentQuality / $compressionFactor;
            $image->setImageCompressionQuality($newQuality);
            ob_start();
            $image->writeImage('jpeg:-');
            $imageData = ob_get_clean();
            $imageSize = strlen($imageData);
        }
        return base64_encode($image);
    }
}

Por cierto, recientemente elabore una pagina ecommerce a un amigo donde me pedía, que si podía capturar imágenes directamente
desde una url y guardarlas en alguna pagina como https://imgur.com/ o https://freeimage.host/ donde estas me retornaran un url y así no tener necesidad de almacenar en su hosting.

Si tu o algún otro forero esta interesado en ese modulo, con gusto lo subo y comparto con la comunidad (totalmente gratuito todo)

Saludos amigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

redimencionar imagen antes de subirla al servidor

Publicado por Eduardo (181 intervenciones) el 11/06/2024 00:40:11
Hola mil gracias por responder... Pero es fácil de usar?? Solo es ponerla en el código como un script js y poner la clase a los input file??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

redimencionar imagen antes de subirla al servidor

Publicado por Eduardo (181 intervenciones) el 11/06/2024 00:52:55
Hola Gracias por responder por ejemplo como hago para ponerlo a este ejemplo:

Archivo formulario

1
2
3
4
5
6
7
<form action="subir-imagen.php" enctype="multipart/form-data" method="post">
 
        <input type="file" name="imagen">
 
        <input type="submit" value="Subir">
 
    </form>

Archivo php que sube la imagen al servidor!!


1
2
3
4
5
6
7
8
9
10
<?php
 
$path = "imagenes/". basename($_FILES['imagen']['name']);
 
if(move_uploaded_file($_FILES['imagen']['tmp_name'], $path)) {
    echo "El archivo ".  basename( $_FILES['imagen']['name']). " ha sido subido";
} else{
    echo "El archivo no se ha subido correctamente";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

redimencionar imagen antes de subirla al servidor

Publicado por Jefferson (209 intervenciones) el 11/06/2024 22:41:49
Hola Eduardo.

Disculpa la tardanza en responder, si imagino es facil de usar, todo depende de tus conocimientos.

Deja te preparo el módulo que comenté y lo adjunto. Bien explicado.

Aunque si, es facil de implementar, creo que la única librería que necesitas sería Imagick pero está por lo general la activas desde tu hosting
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

redimencionar imagen antes de subirla al servidor

Publicado por Mauro (1042 intervenciones) el 12/06/2024 10:02:01
Hace unos años desarrollé un componente que hacía exactamente eso. Dejé los detalles en este post por si lo quieres ver.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

redimencionar imagen antes de subirla al servidor

Publicado por Jefferson (209 intervenciones) el 15/06/2024 02:33:06
Hola Eduardo

Por tiempo no pude comentar los archivos, igual te tocara leerlos para lograr entenderlos.

o en su defecto usar los script (copia y pega)

saludos

Adjunto el zip
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar