Inicio » Blog »

1 marzo, 2025

redimensionar imágenes en Laravel 12 con Intervention Image v3

#Laravel

Aprende a redimensionar imágenes en Laravel 12 usando Intervention Image v3. Optimiza el rendimiento y mejora la experiencia de usuario con ejemplos prácticos y código

redimensionar imágenes en Laravel 12 con Intervention Image v3

Suscríbete a nuestro canal en Youtube

Suscríbirse

 

En aplicaciones web modernas, optimizar imágenes es clave para mejorar la velocidad de carga y la experiencia de usuario. En este tutorial, aprenderás a redimensionar imágenes en Laravel 12 utilizando la versión 3 del paquete Intervention Image , una herramienta poderosa y flexible para manipular gráficos

Requisitos Previos

  • Laravel 12 instalado.
  • Conocimientos básicos de PHP y Blade.
  • Composer para gestionar dependencias.

Paso 1: Instalar Intervention Image v3

Ejecuta el siguiente comando para instalar la versión 3 del paquete:

bash

composer require intervention/image-laravel

Este paquete soporta drivers como GD y Imagick para procesamiento de imágenes

php artisan vendor:publish --provider="Intervention\Image\Laravel\ServiceProvider"

Rutas 

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FrontController;


/// RUTAS PARA REDIMENSIONAR IMAGENES
Route::get('/upload', function () {    return view('upload'); });
Route::post('upload', [FrontController::class, 'uploadImage']);

 

Controller

<?php

namespace App\Http\Controllers;
use Detection\MobileDetect;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use Intervention\Image\Laravel\Facades\Image;


class FrontController extends Controller
{

    public function index(){
        $detect = new MobileDetect;
        if ($detect->isMobile()) {
            $imagePath = asset('images/mobile-image.png');
        } else {
            $imagePath = asset('images/desktop-image.jpg');
        }
        return view('welcome', compact("imagePath"));

    }




    public function uploadImage(Request $request){
        // Validar que se haya subido una imagen
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', // Máximo 2MB
        ]);

        // Obtener el archivo cargado
        $upload = $request->file('image');

        // Generar un nombre único para el archivo   image.jpg  .png  .gif .webp
        $filename = Str::random(40) . '.' . $upload->getClientOriginalExtension();

        // Redimensionar la imagen
        $image = Image::read($upload)
                ->scale(width:700); 

        // Guardar la imagen redimensionada en el almacenamiento
        $path = storage_path('app/public/images/' . $filename);
        $image->save($path);

        return back()->with('success', 'Imagen redimensionada y guardada correctamente.');

    }
}


 

Vista

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

    <h1>Subir Imagen</h1>
    @if(session('success'))
        <p style="color: green;">{{ session('success') }}</p>
    @endif
    <form action="/upload" method="POST" enctype="multipart/form-data">
        @csrf
        <input type="file" name="image" accept="image/*" required>
        <button type="submit">Subir y Redimensionar</button>
    </form> 
</body>
</html>

Leido 877 veces | 0 usuarios

Código fuente no disponible.

Compartir link del tutorial con tus amigos


Laravel Página Web Administrable

USD 37.00

Descarga del código fuente

Laravel Página Web Administrable

Codea Applications

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú