Maison  >  Questions et réponses  >  le corps du texte

Redimensionner l'image avant de la télécharger dans Laravel 5.8

<p>J'ai cette fonction pour télécharger des images via l'API dans Laravel : </p> <pre class="brush:php;toolbar:false;">fonction privée handleImage($image) { $explosé = exploser(',', $image); $decoded = base64_decode($exploded[1]); if (Str::contains($exploded[0], 'jpeg')) { $extension = 'jpg'; } autre { $extension = 'png'; } $fileName = Str::random() '.' $path = public_path() '/images/products/' . $file = file_put_contents($path, $decoded); $image = '/images/produits/' . renvoie $image ; }</pré> <p>Comment redimensionner une image jusqu'à une longueur de côté maximale de 500 pixels avant de la télécharger ? </p>
P粉608647033P粉608647033434 Il y a quelques jours552

répondre à tous(1)je répondrai

  • P粉153503989

    P粉1535039892023-09-05 11:18:07

    Vous pouvez essayer d'utiliser le package Intervention Image dans Laravel pour redimensionner avant de télécharger.

    1. Installez le package :

      作曲家需要干预/图像

    2. Ajoutez le code suivant au début du fichier pour importer les classes requises :

      使用 InterventionImageImageManagerStatic 作为图像;

      使用 IlluminateSupportStr;

    3. Modifiez la méthode handleImage comme suit :

      private function handleImage($image)
       {
       $exploded = explode(',', $image);
       $decoded = base64_decode($exploded[1]);
       $image = Image::make($decoded);
      
       // Resize the image to a maximum size of 500px on the longest side
       $image->resize(500, null, function ($constraint) {
           $constraint->aspectRatio();
           $constraint->upsize();
       });
      
       // Set the file extension based on the original image format
       if (Str::contains($exploded[0], 'jpeg')) {
           $extension = 'jpg';
       } else {
           $extension = 'png';
       }
      
       $fileName = Str::random() . '.' . $extension;
       $path = public_path() . '/images/products/' . $fileName;
       $image->save($path);
      
       return '/images/products/' . $fileName;
      }

    https://github.com/Intervention/image

    J'espère que cela vous aidera

    répondre
    0
  • Annulerrépondre