{"id":25044,"date":"2021-05-30T18:22:00","date_gmt":"2021-05-30T15:22:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25044"},"modified":"2021-10-18T02:35:39","modified_gmt":"2021-10-17T23:35:39","slug":"wie-man-ein-bild-mit-jquery-und-php-hochlaedt-zuschneidet-und-seine-groesse-aendert","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/wie-man-ein-bild-mit-jquery-und-php-hochlaedt-zuschneidet-und-seine-groesse-aendert\/","title":{"rendered":"Wie man ein Bild mit jQuery und PHP hochl\u00e4dt, zuschneidet und seine Gr\u00f6\u00dfe \u00e4ndert"},"content":{"rendered":"<p>Wenn Sie eine Website betreiben, m\u00f6chten Sie das Bild in bestimmten Szenarien m\u00f6glicherweise zuschneiden. Angenommen, Sie m\u00f6chten dem Benutzer erlauben, seine Profilbilder vor dem Hochladen zuzuschneiden. In diesem Artikel untersuchen wir, wie Sie das Bild mit imgAreaSelect und PHP hochladen, zuschneiden und die Gr\u00f6\u00dfe \u00e4ndern.<\/p>\n<p>Wir k\u00f6nnen sagen, dass wir beim Zuschneiden des Bildes die Gr\u00f6\u00dfe tats\u00e4chlich an die bereitgestellten Koordinaten des zugeschnittenen Teils anpassen.<\/p>\n<p><a href=\"https:\/\/plugins.jquery.com\/imgareaselect\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">imgAreaSelect<\/a> ist ein jQuery-Plugin, das eine Funktion zum Zuschneiden der Bilder bietet. Es ist ein leichtes Plugin und einfach zu bedienen.<\/p>\n<p>Um zu beginnen, m\u00fcssen Sie das imgAreaSelect-Plugin und die <a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Intervention Image-<\/a> Bibliothek verwenden. Mit imgAreaSelect w\u00e4hlen wir den zu beschneidenden Bildbereich aus und die Internention Image Library hilft uns, die urspr\u00fcngliche und kopierte Version eines Bildes auf dem Server zu speichern.<\/p>\n<p>Lassen Sie uns jedoch einen Blick darauf werfen, wie Sie das Bild mit jQuery und PHP hochladen, zuschneiden und die Gr\u00f6\u00dfe \u00e4ndern.<\/p>\n<h3>Installation<\/h3>\n<p>Laden Sie das <a href=\"https:\/\/plugins.jquery.com\/imgareaselect\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">imgAreaSelect-<\/a> Plugin \u00fcber den angegebenen Link herunter. F\u00fcr die Installation von Interventon Image empfehle ich <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a>. F\u00fchren Sie den folgenden Befehl im Stammverzeichnis des Projekts aus, um die Intervention Image-Bibliothek zu installieren.<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>Wenn Sie fertig sind, stellen Sie sicher, dass Ihre Verzeichnisstruktur wie in einem Screenshot unten aussieht.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20408-6081ed5ce4b24.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20408-6081ed5ce4b24.png\" alt=\"Wie man ein Bild mit jQuery und PHP hochl\u00e4dt, zuschneidet und seine Gr\u00f6\u00dfe \u00e4ndert\" ><\/a><\/p>\n<h3>So verwenden Sie imgAreaSelect<\/h3>\n<p>Um imgAreaSelect verwenden zu k\u00f6nnen, m\u00fcssen wir zun\u00e4chst ihre CSS- und JS-Datei zusammen mit der jQuery-Bibliothek einbinden.<\/p>\n<pre><code>&lt;link rel=\"stylesheet\" href=\"css\/imgareaselect.css\"&gt;\n&lt;script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"js\/jquery.imgareaselect.js\"&gt;&lt;\/script&gt;<\/code><\/pre>\n<p>Als n\u00e4chstes ben\u00f6tigen wir ein einfaches Formular, in dem der Benutzer das Bild durchsuchen und zur serverseitigen Verarbeitung senden kann.<\/p>\n<pre><code>&lt;form action=\"crop.php\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0Upload Image: &lt;input type=\"file\" name=\"image\" id=\"image\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"hidden\" name=\"x1\" value=\"\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"hidden\" name=\"y1\" value=\"\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"hidden\" name=\"w\" value=\"\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"hidden\" name=\"h\" value=\"\" \/&gt;&lt;br&gt;&lt;br&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;\n\u00a0\n&lt;p&gt;&lt;img id=\"previewimage\" style=\"display:none;\"\/&gt;&lt;\/p&gt;<\/code><\/pre>\n<p>Das obige Formular zeigt die Dateieingabe und die Schaltfl\u00e4che zum Senden an. Ich habe versteckte Felder im Formular genommen, die das Bild auf der Serverseite zuschneiden m\u00fcssen. Grunds\u00e4tzlich senden diese versteckten Felder Koordinaten des Bildes zum Zuschneiden.<\/p>\n<p>Wenn der Benutzer das Bild durchsucht, zeigen wir das Bild an, in dem ein Benutzer den Bereich ausw\u00e4hlen kann, den er zuschneiden m\u00f6chte. Der folgende Code erm\u00f6glicht es dem Benutzer, eine Vorschau des Bildes anzuzeigen und einen Bereich des Bildes zum Zuschneiden auszuw\u00e4hlen.<\/p>\n<pre><code>&lt;script&gt;\njQuery(function($) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0var p = $(\"#previewimage\");\n\u00a0\u00a0\u00a0\u00a0$(\"body\").on(\"change\", \"#image\", function(){\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var imageReader = new FileReader();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0imageReader.readAsDataURL(document.getElementById(\"image\").files[0]);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0imageReader.onload = function (oFREvent) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0p.attr('src', oFREvent.target.result).fadeIn();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0};\n\u00a0\u00a0\u00a0\u00a0});\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$('#previewimage').imgAreaSelect({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0onSelectEnd: function (img, selection) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('input[name=\"x1\"]').val(selection.x1);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('input[name=\"y1\"]').val(selection.y1);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('input[name=\"w\"]').val(selection.width);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('input[name=\"h\"]').val(selection.height);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0});\n});\n&lt;\/script&gt;<\/code><\/pre>\n<h3>Serverseitiges Hochladen, Zuschneiden und \u00c4ndern der Bildgr\u00f6\u00dfe<\/h3>\n<p>Nach dem Absenden des Formulars leitet es zu der <code>crop.php<\/code>Datei weiter, in die wir das Bild hochladen und serverseitig zuschneiden. Diese Datei akzeptiert Dateieingaben und Koordinaten des Bildes zum Zuschneiden.<\/p>\n<p>Lassen Sie uns zun\u00e4chst die Umgebung der Interventionsbildbibliothek einbeziehen.<\/p>\n<pre><code>&lt;?php\nrequire 'vendor\/autoload.php';\n\u00a0\nuse InterventionImageImageManagerStatic as Image;<\/code><\/pre>\n<p>Ich werde eine <code>crop()<\/code>Methode einer Bibliothek verwenden, um die beschnittene Version des Originalbilds zu erstellen. Parameter f\u00fcr die Funktion crop() sind Breite, H\u00f6he und Koordinaten der x- und y-Achse. Sie k\u00f6nnen mehr dar\u00fcber in ihrer <a href=\"https:\/\/image.intervention.io\/api\/crop\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dokumentation<\/a> lesen .<\/p>\n<p><strong>crop.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire 'vendor\/autoload.php';\n\u00a0\nuse InterventionImageImageManagerStatic as Image;\n\u00a0\nif(isset($_POST['submit'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if(isset($_FILES['image']['name']) &amp;&amp; !empty($_FILES['image']['name'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(!file_exists('images')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir('images', 0755);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = $_FILES['image']['name'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filepath = 'images\/'. $filename;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['image']['tmp_name'], $filepath);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(!file_exists('images\/crop')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir('images\/crop', 0755);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ crop image\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img = Image::make($filepath);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$croppath = 'images\/crop\/'. $filename;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img-&gt;crop($_POST['w'], $_POST['h'], $_POST['x1'], $_POST['y1']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img-&gt;save($croppath);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"&lt;img src='\". $croppath .\"' \/&gt;\";\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Das ist es! Wenn Sie nun den Flow testen, erhalten Sie die Original- und die zugeschnittene Version der Bilder, die in den Verzeichnissen &#8218;images&#8216; bzw. &#8218;crop&#8216; gespeichert sind.<\/p>\n<h3>Legen Sie die maximale Breite f\u00fcr das Bild fest<\/h3>\n<p>Manchmal m\u00f6chte der Benutzer m\u00f6glicherweise die maximale Breite f\u00fcr eine beschnittene Version eines Bildes definieren. imgAreaSelect bietet verschiedene Optionen wie z. B. Seitenverh\u00e4ltnis, maxWidth, maxHeight usw., um das Endergebnis eines Bildes anzupassen. Ein Benutzer kann die Option maxWidth verwenden, um die maximale Breite f\u00fcr das Bild festzulegen.<\/p>\n<pre><code>$('#previewimage').imgAreaSelect({\n\u00a0\u00a0\u00a0\u00a0maxWidth: '1000', \/\/ this value is in pixels\n\u00a0\u00a0\u00a0\u00a0onSelectEnd: function (img, selection) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('input[name=\"x1\"]').val(selection.x1);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('input[name=\"y1\"]').val(selection.y1);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('input[name=\"w\"]').val(selection.width);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('input[name=\"h\"]').val(selection.height);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0}\n});<\/code><\/pre>\n<p>Ich hoffe, Sie verstehen, wie Sie das Bild mit jQuery und PHP hochladen, zuschneiden und die Gr\u00f6\u00dfe \u00e4ndern. Ich w\u00fcrde gerne Ihre Meinung im Kommentarbereich unten erfahren.<\/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\/so-registrieren-sie-benutzerdefinierte-bildgrosen-und-andern-die-grose-vorhandener-bilder-in-wordpress\/\" title=\"So registrieren Sie benutzerdefinierte Bildgr\u00f6\u00dfen und \u00e4ndern die Gr\u00f6\u00dfe vorhandener Bilder in WordPress\">So registrieren Sie benutzerdefinierte Bildgr\u00f6\u00dfen und \u00e4ndern die Gr\u00f6\u00dfe vorhandener Bilder in WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/bildgroesse-in-php-mit-intervention-image-library-aendern\/\" title=\"Bildgr\u00f6\u00dfe in PHP mit Intervention Image Library \u00e4ndern\">Bildgr\u00f6\u00dfe in PHP mit Intervention Image Library \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 das Bild hochladen und zuschneiden? In diesem Artikel lernen wir, wie man Bilder mit jQuery und PHP hochl\u00e4dt, zuschneidet und ihre Gr\u00f6\u00dfe \u00e4ndert.<\/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-25044","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\/25044","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=25044"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25044\/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=25044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=25044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=25044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}