{"id":24631,"date":"2021-05-22T11:07:00","date_gmt":"2021-05-22T08:07:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24631"},"modified":"2021-10-18T02:40:10","modified_gmt":"2021-10-17T23:40:10","slug":"bildgrose-in-laravel-mithilfe-der-interventions-bildbibliothek-andern","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/bildgrose-in-laravel-mithilfe-der-interventions-bildbibliothek-andern\/","title":{"rendered":"Bildgr\u00f6\u00dfe in Laravel mithilfe der Interventions-Bildbibliothek \u00e4ndern"},"content":{"rendered":"<p>K\u00fcrzlich hat einer unserer Leser gefragt, wie man die Gr\u00f6\u00dfe des Bildes in Laravel \u00e4ndert. Die Gr\u00f6\u00dfen\u00e4nderung von Bildern ist eine regelm\u00e4\u00dfige Aufgabe f\u00fcr Entwickler. Die Entwickler sollten es richtig machen. Es empfiehlt sich, die Gr\u00f6\u00dfe der Bilder entsprechend ihrer Containergr\u00f6\u00dfe zu \u00e4ndern. Es hilft Ihnen, die Seitengeschwindigkeit zu verbessern. In diesem Artikel untersuchen wir, wie Sie die Gr\u00f6\u00dfe des Bildes in Laravel mithilfe der Interventionsbildbibliothek \u00e4ndern.<\/p>\n<p><a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Die Interventions-Bildbibliothek<\/a> bietet eine einfache M\u00f6glichkeit, die Gr\u00f6\u00dfe der Bilder zu \u00e4ndern. Diese Bibliothek verwendet GD Library und Imagick f\u00fcr die Bildbearbeitung unter der Haube.<\/p>\n<h3>Warum sollte die Gr\u00f6\u00dfe von Bildern ge\u00e4ndert werden?<\/h3>\n<p>Nehmen Sie das Beispiel einer Galerie. W\u00e4hrend der Arbeit an einer Galerie zeigen wir normalerweise das kleine Thumbnail im Listing an. Wenn jemand auf das Thumbnail klickt, zeigen wir ein Originalbild. Hier sind die Miniaturansichten die verkleinerte Version des Originalbilds.<\/p>\n<p>Nehmen wir an, Ihre Originalbildgr\u00f6\u00dfe betr\u00e4gt 500\u00a0500 und Ihr Miniaturansichtscontainer hat die Gr\u00f6\u00dfe 200200. In diesem Fall sollten Sie die Gr\u00f6\u00dfe des Originalbilds entsprechend der Containergr\u00f6\u00dfe der Miniaturansicht \u00e4ndern. Die Verwendung eines gro\u00dfen Bildes in einem kleinen Container ist eine schlechte Praxis. Es beeinflusst die Leistung der Website.<\/p>\n<p>Dies ist ein Beispiel daf\u00fcr, warum wir die Gr\u00f6\u00dfe der Bilder \u00e4ndern sollten. Es gibt auch viele andere. Lassen Sie uns jedoch einen Blick darauf werfen, wie Sie die Gr\u00f6\u00dfe des Bildes in Laravel mithilfe der Interventionsbildbibliothek \u00e4ndern.<\/p>\n<h3>Installation<\/h3>\n<p>Um zu beginnen, m\u00fcssen Sie die Intervention Image-Bibliothek in Ihrem Laravel-Projekt installieren. Sie sollten <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> auf dem System installiert. \u00d6ffnen Sie das Terminal in Ihrem Projekt-Stammverzeichnis und f\u00fchren Sie den folgenden Befehl aus:<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>\u00d6ffnen Sie nach der Installation der Bibliothek die <code>config\/app.php<\/code>Datei und f\u00fcgen Sie die folgenden Zeilen hinzu.<\/p>\n<p>F\u00fcgen Sie dem <code>$providers<\/code>Array den Dienstanbieter dieses Pakets hinzu .<\/p>\n<pre><code>InterventionImageImageServiceProvider::class<\/code><\/pre>\n<p>Als n\u00e4chstes f\u00fcgen Sie die Fassade zum <code>$aliases<\/code>Array hinzu.<\/p>\n<pre><code>'Image' =&gt; InterventionImageFacadesImage::class<\/code><\/pre>\n<h3>Bildgr\u00f6\u00dfe in Laravel \u00e4ndern<\/h3>\n<p>Um die Gr\u00f6\u00dfe des Bildes zu \u00e4ndern, m\u00fcssen wir zuerst Code zum Hochladen eines Bildes schreiben. Erstellen Sie also zuerst ein Verzeichnis, in dem wir die Bilder speichern. Gehen Sie zum Terminal und f\u00fchren Sie den Befehl aus:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Dieser Befehl erstellt ein &#8217;storage&#8216;-Verzeichnis unter dem &#8218;public&#8216;-Ordner. Im Ordner &#8217;storage&#8216; speichern wir eine Vollversion und eine Miniaturansicht der Bilder.<\/p>\n<p>Erstellen Sie als N\u00e4chstes ein Formular in Ihrer Ansichtsdatei. Ich f\u00fcge auch Code f\u00fcr die Erfolgsmeldung in der Blade-Datei hinzu.<\/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>Ersetzen Sie den Platzhalter &#8218;PASS_ACTION_URL&#8216; durch Ihre Route.<\/p>\n<p>In der Steuerung ist es erforderlich, das Fassaden-&#8218;Image&#8216; einer Bibliothek hinzuzuf\u00fcgen, die wir in der <code>config\/app.php<\/code>Datei hinzugef\u00fcgt haben .<\/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>Durch das Hinzuf\u00fcgen der Fassade k\u00f6nnen wir Funktionen der Intervention Image Library aufrufen. Im folgenden Code werde ich das Bild an zwei Stellen hochladen. Eines ist das Originalbild im Ordner \u201eprofile_images&#8220;. Der zweite befindet sich im Verzeichnis &#8218;profile_images\/thumbnail&#8216;. Ich werde zuerst das Originalbild in den Thumbnail-Ordner hochladen und dann die Gr\u00f6\u00dfe \u00e4ndern.<\/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>Hier verkleinere ich das Bild proportional. Dabei behalten Sie das Seitenverh\u00e4ltnis bei und das Bild wird nicht abgeschnitten. Ich habe Breite als 400 und H\u00f6he als 150 \u00fcbergeben. Sie k\u00f6nnen diese Werte nach Ihren W\u00fcnschen \u00e4ndern.<\/p>\n<p>Wenn Sie nach hartem Zuschneiden suchen, ersetzen Sie die folgenden Zeilen<\/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>Mit<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(100, 100)-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Danach erhalten Sie das Thumbnail mit einer Dimension von 100*100.<\/p>\n<p>Ich hoffe, Sie erfahren mehr \u00fcber die Gr\u00f6\u00dfen\u00e4nderung des Bildes in Laravel mithilfe der Interventionsbildbibliothek. Bitte teilen Sie Ihre Gedanken und Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/bildoptimierung-mit-artisansweb-image-optimizer-package\/\" title=\"Bildoptimierung mit artisansweb\/image-optimizer Package\">Bildoptimierung mit artisansweb\/image-optimizer Package<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-laden-und-komprimieren-sie-bilder-in-laravel\/\" title=\"Eine Anleitung zum Hochladen und Komprimieren von Bildern in Laravel\">Eine Anleitung zum Hochladen und Komprimieren von Bildern in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/bildgrose-in-php-mit-tinypng-andern\/\" title=\"Bildgr\u00f6\u00dfe in PHP mit TinyPNG \u00e4ndern\">Bildgr\u00f6\u00dfe in PHP mit TinyPNG \u00e4ndern<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f6chten Sie die Bildgr\u00f6\u00dfe in Laravel \u00e4ndern? In diesem Artikel untersuchen wir, wie Sie die Bildgr\u00f6\u00dfe in Laravel mithilfe der Interventionsbildbibliothek \u00e4ndern. Bildgr\u00f6\u00dfe \u00e4ndern<\/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":[496],"tags":[845],"class_list":["post-24631","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24631"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24631\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21676"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}