{"id":24640,"date":"2021-05-22T11:11:00","date_gmt":"2021-05-22T08:11:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24640"},"modified":"2021-10-18T02:14:41","modified_gmt":"2021-10-17T23:14:41","slug":"redimensionner-l-image-dans-laravel-a-l-aide-de-la-bibliotheque-d-images-d-intervention","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/redimensionner-l-image-dans-laravel-a-l-aide-de-la-bibliotheque-d-images-d-intervention\/","title":{"rendered":"Redimensionner l&rsquo;image dans Laravel \u00e0 l&rsquo;aide de la biblioth\u00e8que d&rsquo;images d&rsquo;intervention"},"content":{"rendered":"<p>R\u00e9cemment, un de nos lecteurs a demand\u00e9 comment redimensionner l&rsquo;image dans Laravel. Le redimensionnement des images est une t\u00e2che r\u00e9guli\u00e8re pour les d\u00e9veloppeurs. Les d\u00e9veloppeurs doivent le faire correctement. C&rsquo;est une bonne pratique de redimensionner les images en fonction de la taille de son conteneur. Il vous aide \u00e0 am\u00e9liorer la vitesse de la page. Dans cet article, nous \u00e9tudions comment redimensionner l&rsquo;image dans Laravel \u00e0 l&rsquo;aide de la biblioth\u00e8que d&rsquo;images d&rsquo;intervention.<\/p>\n<p><a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">La<\/a> biblioth\u00e8que d&rsquo; <a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">images d&rsquo;intervention<\/a> permet de redimensionner facilement les images. Cette biblioth\u00e8que utilise GD Library et Imagick pour la manipulation d&rsquo;images sous le capot.<\/p>\n<h3>Pourquoi redimensionner les images ?<\/h3>\n<p>Prenons l&rsquo;exemple d&rsquo;une galerie. Lorsque nous travaillons sur une galerie, nous affichons normalement la petite vignette dans la liste. Lorsque quelqu&rsquo;un clique sur la vignette, nous montrons une image originale. Ici, les vignettes sont la version redimensionn\u00e9e de l&rsquo;image originale.<\/p>\n<p>Disons que la taille de votre image d&rsquo;origine est de 500\u00a0500 et que votre conteneur de vignettes est de taille 200200. Dans ce cas, vous devez redimensionner l&rsquo;image d&rsquo;origine en fonction de la taille du conteneur de vignettes. L&rsquo;utilisation d&rsquo;une image de grande taille dans le petit conteneur est une mauvaise pratique. Cela affecte les performances du site Web.<\/p>\n<p>Ceci est un exemple de la raison pour laquelle nous devrions redimensionner les images. Il y en a bien d&rsquo;autres aussi. Cela dit, voyons comment redimensionner l&rsquo;image dans Laravel \u00e0 l&rsquo;aide de la biblioth\u00e8que d&rsquo;images d&rsquo;intervention.<\/p>\n<h3>Installation<\/h3>\n<p>Pour commencer, vous devez installer la biblioth\u00e8que d&rsquo;images d&rsquo;intervention dans votre projet Laravel. Vous devriez avoir <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> install\u00e9 sur votre syst\u00e8me. Ouvrez le terminal dans le r\u00e9pertoire racine de votre projet et ex\u00e9cutez la commande ci-dessous\u00a0:<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>Apr\u00e8s avoir install\u00e9 la biblioth\u00e8que, ouvrez le <code>config\/app.php<\/code>fichier et ajoutez-y les lignes suivantes.<\/p>\n<p>Ajoutez le fournisseur de services de ce package \u00e0 la <code>$providers<\/code>baie.<\/p>\n<pre><code>InterventionImageImageServiceProvider::class<\/code><\/pre>\n<p>Ajoutez ensuite la fa\u00e7ade au <code>$aliases<\/code>tableau.<\/p>\n<pre><code>'Image' =&gt; InterventionImageFacadesImage::class<\/code><\/pre>\n<h3>Redimensionner l&rsquo;image dans Laravel<\/h3>\n<p>Pour redimensionner l&rsquo;image, nous devons d&rsquo;abord \u00e9crire le code pour t\u00e9l\u00e9charger une image. Cr\u00e9ez donc d&rsquo;abord un r\u00e9pertoire o\u00f9 nous stockerons les images. Rendez-vous sur le terminal et ex\u00e9cutez la commande\u00a0:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Cette commande cr\u00e9e un r\u00e9pertoire \u00ab\u00a0stockage\u00a0\u00bb dans le dossier \u00ab\u00a0public\u00a0\u00bb. Dans le dossier \u00ab\u00a0stockage\u00a0\u00bb, nous stockerons une version compl\u00e8te et une version miniature des images.<\/p>\n<p>Ensuite, cr\u00e9ez un formulaire dans votre fichier de vue. J&rsquo;ajoute \u00e9galement du code pour le message de r\u00e9ussite dans le fichier blade.<\/p>\n<pre><code>@if (session('success'))\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-success\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{{ session('success') }}\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n@endif\n&lt;form action=\"{{ url('PASS_ACTION_URL') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputFile\"&gt;File input&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"profile_image\" id=\"exampleInputFile\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Remplacez l&rsquo;espace r\u00e9serv\u00e9 &quot;PASS_ACTION_URL&quot; par votre itin\u00e9raire.<\/p>\n<p>Dans le contr\u00f4leur, il faut ajouter la fa\u00e7ade &lsquo;Image&rsquo; d&rsquo;une biblioth\u00e8que que nous avons ajout\u00e9e dans le <code>config\/app.php<\/code>fichier.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse Image;\n\u00a0\nclass ImageController extends Controller\n{\n\u00a0\n}<\/code><\/pre>\n<p>En ajoutant la fa\u00e7ade, nous pouvons appeler des fonctions de la biblioth\u00e8que d&rsquo;images d&rsquo;intervention. Dans le code ci-dessous, je vais t\u00e9l\u00e9charger l&rsquo;image \u00e0 deux endroits. L&rsquo;une est l&rsquo;image d&rsquo;origine dans le dossier &lsquo;profile_images&rsquo;. Le second se trouve dans le r\u00e9pertoire &lsquo;profile_images\/thumbnail&rsquo;. Je vais d&rsquo;abord t\u00e9l\u00e9charger l&rsquo;image originale dans le dossier des vignettes, puis la redimensionner.<\/p>\n<pre><code>public function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0if($request-&gt;hasFile('profile_image')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $request-&gt;file('profile_image')-&gt;getClientOriginalName();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $request-&gt;file('profile_image')-&gt;getClientOriginalExtension();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.time().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Upload File\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$request-&gt;file('profile_image')-&gt;storeAs('public\/profile_images', $filenametostore);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$request-&gt;file('profile_image')-&gt;storeAs('public\/profile_images\/thumbnail', $filenametostore);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Resize image here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$thumbnailpath = public_path('storage\/profile_images\/thumbnail\/'.$filenametostore);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img = Image::make($thumbnailpath)-&gt;resize(400, 150, function($constraint) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img-&gt;save($thumbnailpath);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect('image')-&gt;with('success', \"Image uploaded successfully.\"); \/\/change the route as per your flow\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Ici, je redimensionne l&rsquo;image proportionnellement. Ce faisant, vous conservez le rapport hauteur\/largeur et l&rsquo;image ne sera pas coup\u00e9e. J&rsquo;ai pass\u00e9 la largeur \u00e0 400 et la hauteur \u00e0 150. Vous pouvez modifier ces valeurs selon vos besoins.<\/p>\n<p>Si vous recherchez un recadrage difficile, remplacez les lignes ci-dessous<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(400, 150, function($constraint) {\n\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n});\n$img-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Avec<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(100, 100)-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Apr\u00e8s cela, vous obtiendrez la vignette avec une dimension de 100*100.<\/p>\n<p>J&rsquo;esp\u00e8re que vous pourrez en apprendre davantage sur le redimensionnement de l&rsquo;image dans Laravel \u00e0 l&rsquo;aide de la biblioth\u00e8que d&rsquo;images d&rsquo;intervention. S&rsquo;il vous pla\u00eet partager vos pens\u00e9es et suggestions dans la section commentaires ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/optimisation-d-image-a-l-aide-du-package-artisansweb-image-optimizer\/\" title=\"Optimisation d&#039;image \u00e0 l&#039;aide du package artisansweb\/image-optimizer\">Optimisation d&rsquo;image \u00e0 l&rsquo;aide du package artisansweb\/image-optimizer<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-telecharger-et-compresser-des-images-dans-laravel\/\" title=\"Un guide pour t\u00e9l\u00e9charger et compresser des images dans Laravel\">Un guide pour t\u00e9l\u00e9charger et compresser des images dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/redimensionner-l-image-en-php-a-l-aide-de-tinypng\/\" title=\"Redimensionner l&#039;image en PHP \u00e0 l&#039;aide de TinyPNG\">Redimensionner l&rsquo;image en PHP \u00e0 l&rsquo;aide de TinyPNG<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cherchez-vous \u00e0 redimensionner l&rsquo;image dans Laravel? Dans cet article, nous \u00e9tudions comment redimensionner une image dans Laravel \u00e0 l&rsquo;aide de la biblioth\u00e8que d&rsquo;images d&rsquo;intervention. Redimensionner l&rsquo;image<\/p>\n","protected":false},"author":1,"featured_media":21676,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-24640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24640"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24640\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21676"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}