{"id":28402,"date":"2021-05-22T11:04:00","date_gmt":"2021-05-22T08:04:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28402"},"modified":"2021-10-17T04:44:49","modified_gmt":"2021-10-17T01:44:49","slug":"andra-storlek-pa-bild-i-laravel-med-hjalp-av-interventionsbildbibliotek","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/andra-storlek-pa-bild-i-laravel-med-hjalp-av-interventionsbildbibliotek\/","title":{"rendered":"\u00c4ndra storlek p\u00e5 bild i Laravel med hj\u00e4lp av interventionsbildbibliotek"},"content":{"rendered":"<p>Nyligen fr\u00e5gade en av v\u00e5ra l\u00e4sare hur man \u00e4ndrar storlek p\u00e5 bilden i Laravel. Bild\u00e4ndring \u00e4r en vanlig uppgift f\u00f6r utvecklare. Utvecklarna b\u00f6r g\u00f6ra det korrekt. Det \u00e4r en bra praxis att \u00e4ndra storlek p\u00e5 bilderna enligt dess beh\u00e5llarstorlek. Det hj\u00e4lper dig att f\u00f6rb\u00e4ttra sidhastigheten. I den h\u00e4r artikeln studerar vi hur man \u00e4ndrar storlek p\u00e5 bilden i Laravel med hj\u00e4lp av bildbiblioteket Intervention.<\/p>\n<p><a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Intervention Bildbibliotek<\/a> \u00e4r ett enkelt s\u00e4tt att \u00e4ndra storlek p\u00e5 bilderna. Detta bibliotek anv\u00e4nder GD Library och Imagick f\u00f6r bildmanipulation under huven.<\/p>\n<h3>Varf\u00f6r ska du \u00e4ndra storlek p\u00e5 bilder?<\/h3>\n<p>Ta exemplet p\u00e5 ett galleri. N\u00e4r vi arbetar p\u00e5 ett galleri visar vi normalt den lilla miniatyrbilden i listan. N\u00e4r n\u00e5gon klickar p\u00e5 miniatyrbilden visar vi en originalbild. H\u00e4r \u00e4r miniatyrerna den \u00e4ndrade storleken p\u00e5 originalbilden.<\/p>\n<p>L\u00e5t oss s\u00e4ga att din ursprungliga bildstorlek \u00e4r 500 500 och din miniatyrbeh\u00e5llare har storlek 200 200. I det h\u00e4r fallet b\u00f6r du \u00e4ndra storlek p\u00e5 originalbilden enligt miniatyrens beh\u00e5llarstorlek. Att anv\u00e4nda en storbildsbild i den lilla beh\u00e5llaren \u00e4r en d\u00e5lig praxis. Det p\u00e5verkar webbplatsens prestanda.<\/p>\n<p>Detta \u00e4r ett exempel p\u00e5 varf\u00f6r vi ska \u00e4ndra storlek p\u00e5 bilderna. Det finns ocks\u00e5 m\u00e5nga andra. Med detta sagt, l\u00e5t oss ta en titt p\u00e5 hur du \u00e4ndrar storleken p\u00e5 bilden i Laravel med hj\u00e4lp av Intervention Image Library.<\/p>\n<h3>Installation<\/h3>\n<p>F\u00f6r att komma ig\u00e5ng m\u00e5ste du installera Intervention Image-biblioteket i ditt Laravel-projekt. Du b\u00f6r ha <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> installerat p\u00e5 ditt system. \u00d6ppna terminalen i din projektkatalog och k\u00f6r kommandot nedan:<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>Efter att ha installerat biblioteket, \u00f6ppna <code>config\/app.php<\/code>filen och l\u00e4gg till f\u00f6ljande rader i den.<\/p>\n<p>L\u00e4gg till tj\u00e4nsteleverant\u00f6ren f\u00f6r detta paket i <code>$providers<\/code>matrisen.<\/p>\n<pre><code>InterventionImageImageServiceProvider::class<\/code><\/pre>\n<p>L\u00e4gg sedan till fasaden i <code>$aliases<\/code>matrisen.<\/p>\n<pre><code>'Image' =&gt; InterventionImageFacadesImage::class<\/code><\/pre>\n<h3>\u00c4ndra storlek p\u00e5 bild i Laravel<\/h3>\n<p>F\u00f6r att \u00e4ndra storlek p\u00e5 bilden m\u00e5ste vi f\u00f6rst skriva kod f\u00f6r att ladda upp en bild. S\u00e5 skapa f\u00f6rst en katalog d\u00e4r vi kommer att lagra bilderna. G\u00e5 \u00f6ver till terminalen och k\u00f6r kommandot:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Detta kommando skapar en &quot;lagring&quot; -katalog under &quot;offentlig&quot; -mappen. I mappen &#8217;lagring&#8217; lagrar vi en fullst\u00e4ndig och en miniatyrversion av bilderna.<\/p>\n<p>Skapa sedan ett formul\u00e4r i din vyfil. Jag l\u00e4gger ocks\u00e5 till kod f\u00f6r framg\u00e5ngsmeddelandet i bladfilen.<\/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>Ers\u00e4tt platsh\u00e5llaren &#8217;PASS_ACTION_URL&#8217; med din rutt.<\/p>\n<p>I styrenheten \u00e4r det n\u00f6dv\u00e4ndigt att l\u00e4gga till fasaden &#8217;Bild&#8217; p\u00e5 ett bibliotek som vi har lagt till i <code>config\/app.php<\/code>filen.<\/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>Genom att l\u00e4gga till fasaden kan vi anropa funktioner i Intervention Image Library. I koden nedan laddar jag upp bilden p\u00e5 tv\u00e5 st\u00e4llen. Den ena \u00e4r originalbilden under mappen &#8217;profile_images&#8217;. Den andra finns under katalogen &#8217;profile_images \/ thumbnail&#8217;. Jag laddar f\u00f6rst upp originalbilden i miniatyrmappen och \u00e4ndrar sedan storlek p\u00e5 den.<\/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>H\u00e4r \u00e4ndrar jag storleken p\u00e5 bilden proportionellt. Om du g\u00f6r det beh\u00e5ller du bildf\u00f6rh\u00e5llandet och bilden sk\u00e4rs inte av. Jag har passerat bredden som 400 och h\u00f6jden som 150. Du kan \u00e4ndra dessa v\u00e4rden enligt dina krav.<\/p>\n<p>Om du letar efter h\u00e5rd besk\u00e4rning ers\u00e4tter du nedanst\u00e5ende rader<\/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>Med<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(100, 100)-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Efter detta f\u00e5r du miniatyren med dimensionen 100 * 100.<\/p>\n<p>Jag hoppas att du kan l\u00e4ra dig att \u00e4ndra storlek p\u00e5 bilden i Laravel med hj\u00e4lp av Intervention Image-biblioteket. Dela dina tankar och f\u00f6rslag i kommentarsektionen nedan.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/bildoptimering-med-hjalp-av-artisansweb-image-optimizer-package\/\" title=\"Bildoptimering med hj\u00e4lp av artisansweb \/ image-optimizer Package\">Bildoptimering med hj\u00e4lp av artisansweb \/ image-optimizer Package<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-laddar-upp-och-komprimerar-bilder-i-laravel\/\" title=\"En guide f\u00f6r att ladda upp och komprimera bilder i Laravel\">En guide f\u00f6r att ladda upp och komprimera bilder i Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/andra-storlek-pa-bild-i-php-med-tinypng\/\" title=\"\u00c4ndra storlek p\u00e5 bild i PHP med TinyPNG\">\u00c4ndra storlek p\u00e5 bild i PHP med TinyPNG<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vill du \u00e4ndra storlek p\u00e5 bilden i Laravel? I den h\u00e4r artikeln studerar vi hur man \u00e4ndrar storlek p\u00e5 bilden i Laravel med hj\u00e4lp av Intervention Image Library. \u00c4ndra storlek p\u00e5 bilden<\/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":[503],"tags":[850],"class_list":["post-28402","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/28402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=28402"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/28402\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21676"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=28402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=28402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=28402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}