{"id":25717,"date":"2021-06-13T17:18:00","date_gmt":"2021-06-13T14:18:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25717"},"modified":"2021-10-18T02:29:48","modified_gmt":"2021-10-17T23:29:48","slug":"bildgroesse-in-php-mit-intervention-image-library-aendern","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/bildgroesse-in-php-mit-intervention-image-library-aendern\/","title":{"rendered":"Bildgr\u00f6\u00dfe in PHP mit Intervention Image Library \u00e4ndern"},"content":{"rendered":"<p>Suchen Sie nach M\u00f6glichkeiten zum \u00c4ndern der Gr\u00f6\u00dfe von Bildern in PHP? W\u00e4hrend der Arbeit an der Webanwendung m\u00fcssen wir verschiedene Miniaturansichten des Originalbilds erstellen. Das Thumbnail ist die skalierte Version Ihres Originalbildes. In diesem Artikel untersuchen wir, wie Sie Bilder in PHP hochladen und skalieren.<\/p>\n<h3>Warum sollten wir die Gr\u00f6\u00dfe von Bildern \u00e4ndern?<\/h3>\n<p>Auf der Website gibt es mehrere Szenarien, in denen wir eine kurze Version eines gro\u00dfen Bildes anzeigen m\u00fcssen. Ein beliebtes Beispiel ist die Bildergalerie. In der Galerie haben wir fr\u00fcher eine Liste mit kleinen Bildern angezeigt. Wenn ein Benutzer auf das kleine Bild klickt, wird das gro\u00dfe Bild im Popup ge\u00f6ffnet. Ein weiteres Beispiel ist die Anzeige verwandter Artikel, in denen wir kleine Bilder zusammen mit dem Titel und der Beschreibung eines Beitrags anzeigen.<\/p>\n<p>In diesen Szenarien m\u00fcssen wir ein kleines Bild (Thumbnail) mit unserem Originalbild generieren. Ein kleines Thumbnail reduziert die Gr\u00f6\u00dfe Ihrer Seiten. Da Sie ein kleines Thumbnail verwenden, ben\u00f6tigt der Browser eine geringe Bandbreite zum Laden des Bildes. Es wird der Website einige Vorteile hinzuf\u00fcgen. Einige von ihnen sind:<\/p>\n<ul>\n<li>Verbessert die Serverleistung<\/li>\n<li>Bandbreite reduzieren<\/li>\n<li>Seitengeschwindigkeit verbessern<\/li>\n<\/ul>\n<p>Sehen wir uns jedoch an, wie Sie die Gr\u00f6\u00dfe des Bildes in PHP \u00e4ndern.<\/p>\n<h3>Einstieg<\/h3>\n<p><a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Intervention Image<\/a> ist eine Open-Source-Bibliothek, die als Tool zur Gr\u00f6\u00dfen\u00e4nderung von Bildern fungiert. Unter der Haube verwendet Intervention Image GD Library und Imagick f\u00fcr die Bildverarbeitung und -manipulation.<\/p>\n<p>Um zu beginnen, m\u00fcssen Sie die Intervention Image-Bibliothek in Ihrer Anwendung installieren. Ich empfehle <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> f\u00fcr die Installation einer Bibliothek.<\/p>\n<p>\u00d6ffnen Sie das Terminal in Ihrem Projektstammverzeichnis und f\u00fchren Sie den folgenden Befehl aus.<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>Nach der Installation der Bibliothek m\u00fcssen Sie deren Umgebung in Ihre Anwendung einbeziehen. F\u00fcgen Sie dazu unten zwei Zeilen in die PHP-Datei ein.<\/p>\n<pre><code>&lt;?php\n\/\/ include composer autoload\nrequire 'vendor\/autoload.php';\n\u00a0\u00a0\nuse InterventionImageImageManagerStatic as Image;<\/code><\/pre>\n<p>Um das Bild hochzuladen und die Gr\u00f6\u00dfe zu \u00e4ndern, ben\u00f6tigen wir ein Formular, in dem man das Bild durchsuchen und auf die Schaltfl\u00e4che &quot;Senden&quot; klicken kann. Verwenden Sie den folgenden HTML-Code, der die Dateieingabe und eine Schaltfl\u00e4che zum Senden enth\u00e4lt.<\/p>\n<pre><code>&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"file\" name=\"image\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\"&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<h3>Bildgr\u00f6\u00dfe in PHP mit Interventionsbild \u00e4ndern<\/h3>\n<p>Wir haben die Bibliothek installiert und ein Formular erstellt. Als n\u00e4chstes m\u00fcssen wir das Bild im laufenden Betrieb hochladen und die Gr\u00f6\u00dfe \u00e4ndern. Ich werde zwei Verzeichnisse erstellen <code>uploads<\/code>und <code>thumbnails<\/code>. In dem <code>uploads<\/code>Ordner speichern wir das Originalbild. Die Miniaturansicht des Bildes wird im <code>thumbnails<\/code>Verzeichnis gespeichert .<\/p>\n<p>Verwenden Sie den folgenden Code, der die Original- und Miniaturversion des Bildes in den Verzeichnissen <code>uploads<\/code>und speichert <code>thumbnails<\/code>.<\/p>\n<pre><code>&lt;?php\nrequire 'vendor\/autoload.php';\n\u00a0\u00a0\nuse InterventionImageImageManagerStatic as Image;\n\u00a0\n$allowed_mime_type = array('image\/jpg', 'image\/jpeg', 'image\/png', 'image\/gif');\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (in_array($_FILES['image']['type'], $allowed_mime_type)) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (!file_exists('uploads')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir('uploads', 0755);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = time().'_'.$_FILES['image']['name'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filepath = 'uploads\/'. $filename;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['image']['tmp_name'], $filepath);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (!file_exists('uploads\/thumbnails')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir('uploads\/thumbnails', 0755);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$thumbnailpath = 'uploads\/thumbnails\/'. $filename;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img = Image::make($filepath);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img-&gt;resize(300, null, 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\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Im obigen Code habe ich die Breite als 300 \u00fcbergeben und die Gr\u00f6\u00dfe des Bildes ge\u00e4ndert, indem ich das Seitenverh\u00e4ltnis beibehalten habe. Sie k\u00f6nnen den Breitenwert gem\u00e4\u00df Ihren Anforderungen \u00fcbergeben. Es wird empfohlen, das Seitenverh\u00e4ltnis beizubehalten, wenn Sie die Bildgr\u00f6\u00dfe \u00e4ndern. Bei Verwendung des Seitenverh\u00e4ltnisses wird das Bild nicht gestreckt. Wenn Sie jedoch nach einer harten Ernte suchen, ersetzen Sie die folgenden Zeilen<\/p>\n<pre><code>$img-&gt;resize(300, null, function ($constraint) {\n\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n});<\/code><\/pre>\n<p>Mit<\/p>\n<pre><code>$img-&gt;resize(300, 150)-&gt;save($thumbnailpath);<\/code><\/pre>\n<h3>Fazit<\/h3>\n<p>In diesem Tutorial haben wir untersucht, wie Sie die Gr\u00f6\u00dfe von Bildern \u00e4ndern, indem Sie ihr Seitenverh\u00e4ltnis beibehalten. Wir haben auch einen Code geschrieben, der das Bild hart zuschneidet. Die Interventionsbildbibliothek bietet einige weitere Optionen f\u00fcr eine <code>resize<\/code>Methode. Sie k\u00f6nnen mehr dar\u00fcber in ihrer <a href=\"http:\/\/image.intervention.io\/api\/resize\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dokumentation<\/a> lesen .<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/bildgrose-in-laravel-mithilfe-der-interventions-bildbibliothek-andern\/\" title=\"Bildgr\u00f6\u00dfe in Laravel mithilfe der Interventions-Bildbibliothek \u00e4ndern\">Bildgr\u00f6\u00dfe in Laravel mithilfe der Interventions-Bildbibliothek \u00e4ndern<\/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<li><a href=\"https:\/\/themewp.inform.click\/de\/datei-upload-per-drag-drop-mit-javascript-und-php\/\" title=\"Datei-Upload per Drag &amp; Drop mit JavaScript und PHP\">Datei-Upload per Drag &amp; Drop mit JavaScript und PHP<\/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>In diesem Artikel untersuchen wir, wie Sie die Gr\u00f6\u00dfe von Bildern in PHP mithilfe der Intervention Image Library \u00e4ndern. Die Verwendung einer Miniaturansicht reduziert die Gr\u00f6\u00dfe der Webseite<\/p>\n","protected":false},"author":1,"featured_media":21621,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[272],"tags":[845],"class_list":["post-25717","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25717","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=25717"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21621"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=25717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=25717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=25717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}