{"id":24851,"date":"2021-05-22T10:58:00","date_gmt":"2021-05-22T07:58:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24851"},"modified":"2021-10-18T03:11:29","modified_gmt":"2021-10-18T00:11:29","slug":"ridimensiona-l-immagine-in-laravel-usando-la-libreria-di-immagini-di-intervento","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/ridimensiona-l-immagine-in-laravel-usando-la-libreria-di-immagini-di-intervento\/","title":{"rendered":"Ridimensiona l&#8217;immagine in Laravel usando la libreria di immagini di intervento"},"content":{"rendered":"<p>Recentemente uno dei nostri lettori ha chiesto come ridimensionare l&#8217;immagine in Laravel. Il ridimensionamento delle immagini \u00e8 un&#8217;attivit\u00e0 normale per gli sviluppatori. Gli sviluppatori dovrebbero farlo correttamente. \u00c8 una buona pratica ridimensionare le immagini in base alle dimensioni del contenitore. Ti aiuta a migliorare la velocit\u00e0 della pagina. In questo articolo, studiamo come ridimensionare l&#8217;immagine in Laravel usando la libreria Intervention Image.<\/p>\n<p><a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">La<\/a> libreria di <a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">immagini di intervento<\/a> fornisce un modo semplice per ridimensionare le immagini. Questa libreria utilizza GD Library e Imagick per la manipolazione delle immagini sotto il cofano.<\/p>\n<h3>Perch\u00e9 dovrebbe ridimensionare le immagini?<\/h3>\n<p>Prendiamo l&#8217;esempio di una galleria. Mentre lavoriamo su una galleria, normalmente mostriamo la piccola miniatura nell&#8217;elenco. Quando qualcuno fa clic sulla miniatura, mostriamo un&#8217;immagine originale. Qui, le miniature sono la versione ridimensionata dell&#8217;immagine originale.<\/p>\n<p>Supponiamo che la dimensione dell&#8217;immagine originale sia 500 500 e che il contenitore delle miniature sia di dimensioni 200 200. In questo caso, dovresti ridimensionare l&#8217;immagine originale in base alla dimensione del contenitore della miniatura. Usare un&#8217;immagine di grandi dimensioni nel contenitore piccolo \u00e8 una cattiva pratica. Influisce sulle prestazioni del sito web.<\/p>\n<p>Questo \u00e8 un esempio del perch\u00e9 dovremmo ridimensionare le immagini. Ce ne sono anche molti altri. Detto questo, diamo un&#8217;occhiata a come ridimensionare l&#8217;immagine in Laravel usando la libreria Intervention Image.<\/p>\n<h3>Installazione<\/h3>\n<p>Per iniziare, devi installare la libreria Intervention Image nel tuo progetto Laravel. Dovresti avere <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> installato sul tuo sistema. Apri il terminale nella directory principale del tuo progetto ed esegui il comando seguente:<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>Dopo aver installato la libreria, apri il <code>config\/app.php<\/code>file e aggiungi le seguenti righe al suo interno.<\/p>\n<p>Aggiungi il fornitore di servizi di questo pacchetto <code>$providers<\/code>all&#8217;array.<\/p>\n<pre><code>InterventionImageImageServiceProvider::class<\/code><\/pre>\n<p>Quindi aggiungi la facciata <code>$aliases<\/code>all&#8217;array.<\/p>\n<pre><code>'Image' =&gt; InterventionImageFacadesImage::class<\/code><\/pre>\n<h3>Ridimensiona immagine in Laravel<\/h3>\n<p>Per ridimensionare l&#8217;immagine, dobbiamo prima scrivere il codice per caricare un&#8217;immagine. Quindi, prima crea una directory in cui memorizzeremo le immagini. Vai al terminale ed esegui il comando:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Questo comando crea una directory di &quot;archiviazione&quot; nella cartella &quot;pubblica&quot;. Nella cartella &quot;archiviazione&quot;, memorizzeremo una versione completa e una miniatura delle immagini.<\/p>\n<p>Quindi, crea un modulo nel file di visualizzazione. Sto anche aggiungendo il codice per il messaggio di successo nel file 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>Sostituisci il segnaposto &quot;PASS_ACTION_URL&quot; con il tuo percorso.<\/p>\n<p>Nel controller \u00e8 necessario aggiungere la facciata &#8216;Immagine&#8217; di una libreria che abbiamo aggiunto nel <code>config\/app.php<\/code>file.<\/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>Aggiungendo la facciata, siamo in grado di chiamare le funzioni della libreria Intervention Image. Nel codice sottostante, caricher\u00f2 l&#8217;immagine in due posti. Uno \u00e8 l&#8217;immagine originale nella cartella &#8216;profile_images&#8217;. Il secondo si trova nella directory &#8216;profile_images\/thumbnail&#8217;. Caricher\u00f2 prima l&#8217;immagine originale nella cartella delle miniature e poi la ridimensioner\u00f2.<\/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>Qui sto ridimensionando l&#8217;immagine in modo proporzionale. In questo modo, manterrai le proporzioni e l&#8217;immagine non verr\u00e0 tagliata. Ho superato la larghezza come 400 e l&#8217;altezza come 150. Puoi modificare questi valori secondo le tue esigenze.<\/p>\n<p>Se stai cercando un ritaglio duro, sostituisci le righe sottostanti<\/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>Con<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(100, 100)-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Dopodich\u00e9, otterrai la miniatura con una dimensione di 100*100.<\/p>\n<p>Spero che tu possa imparare a ridimensionare l&#8217;immagine in Laravel usando la libreria di immagini di intervento. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/ottimizzazione-delle-immagini-utilizzando-il-pacchetto-di-ottimizzazione-delle-immagini-web-di-artigiani\/\" title=\"Ottimizzazione delle immagini utilizzando il pacchetto di ottimizzazione delle immagini\/web di artigiani\">Ottimizzazione delle immagini utilizzando il pacchetto di ottimizzazione delle immagini\/web di artigiani<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-caricare-e-comprimere-immagini-in-laravel\/\" title=\"Una guida per caricare e comprimere immagini in Laravel\">Una guida per caricare e comprimere immagini in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/ridimensiona-l-immagine-in-php-usando-tinypng\/\" title=\"Ridimensiona l&#039;immagine in PHP usando TinyPNG\">Ridimensiona l&#8217;immagine in PHP usando TinyPNG<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Stai cercando di ridimensionare l&#8217;immagine in Laravel? In questo articolo, studiamo come ridimensionare l&#8217;immagine in Laravel usando la libreria Intervention Image. Ridimensionamento dell&#8217;immagine<\/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":[500],"tags":[846],"class_list":["post-24851","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=24851"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24851\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21676"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=24851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=24851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=24851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}