{"id":24626,"date":"2021-05-22T10:34:00","date_gmt":"2021-05-22T07:34:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24626"},"modified":"2021-10-17T20:45:43","modified_gmt":"2021-10-17T17:45:43","slug":"muuta-kuvan-kokoa-laravelissa-kayttamalla-interventiokuvakirjastoa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/muuta-kuvan-kokoa-laravelissa-kayttamalla-interventiokuvakirjastoa\/","title":{"rendered":"Muuta kuvan kokoa Laravelissa k\u00e4ytt\u00e4m\u00e4ll\u00e4 interventiokuvakirjastoa"},"content":{"rendered":"<p>\u00c4skett\u00e4in yksi lukijoistamme kysyi kuinka muuttaa kuvan kokoa Laravelissa. Kuvan koon muuttaminen on s\u00e4\u00e4nn\u00f6llinen teht\u00e4v\u00e4 kehitt\u00e4jille. Kehitt\u00e4jien tulisi tehd\u00e4 se oikein. On hyv\u00e4 k\u00e4yt\u00e4nt\u00f6 muuttaa kuvien kokoa s\u00e4ili\u00f6n koon mukaan. Se auttaa parantamaan sivun nopeutta. T\u00e4ss\u00e4 artikkelissa tutkitaan, kuinka Laravel-kuvan kokoa muutetaan Intervention Image -kirjaston avulla.<\/p>\n<p><a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Intervention<\/a> kuvakirjasto tarjoaa helpon tavan muuttaa kuvien kokoa. T\u00e4m\u00e4 kirjasto k\u00e4ytt\u00e4\u00e4 GD-kirjastoa ja Imagickia kuvank\u00e4sittelyyn hupun alla.<\/p>\n<h3>Miksi kuvien kokoa tulisi muuttaa?<\/h3>\n<p>Otetaan esimerkki galleriasta. Kun ty\u00f6skentelet gallerian parissa, n\u00e4yt\u00e4mme yleens\u00e4 pienen pikkukuvan luettelossa. Kun joku napsauttaa pikkukuvaa, n\u00e4yt\u00e4mme alkuper\u00e4isen kuvan. T\u00e4ss\u00e4 pikkukuvat ovat alkuper\u00e4isen kuvan kokoa.<\/p>\n<p>Oletetaan, ett\u00e4 alkuper\u00e4isen kuvasi koko on 500 500 ja pikkukuva-arkisi koko on 200 200. T\u00e4ss\u00e4 tapauksessa sinun tulee muuttaa alkuper\u00e4isen kuvan kokoa pikkukuvan s\u00e4ili\u00f6koon mukaan. Suurikokoisen kuvan k\u00e4ytt\u00e4minen pieness\u00e4 astiassa on huono k\u00e4yt\u00e4nt\u00f6. Se vaikuttaa verkkosivuston suorituskykyyn.<\/p>\n<p>T\u00e4m\u00e4 on yksi esimerkki siit\u00e4, miksi meid\u00e4n pit\u00e4isi muuttaa kuvien kokoa. On my\u00f6s monia muita. T\u00e4m\u00e4n j\u00e4lkeen katsotaanpa, kuinka Laravel-kuvan kokoa muutetaan Intervention Image -kirjastolla.<\/p>\n<h3>Asennus<\/h3>\n<p>Aloittamiseksi sinun on asennettava Intervention Image -kirjasto Laravel-projektiisi. Sinulla on oltava <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> asennettuna j\u00e4rjestelm\u00e4\u00e4n. Avaa p\u00e4\u00e4te projektin juurihakemistossa ja suorita alla oleva komento:<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>Kun olet asentanut kirjaston, avaa <code>config\/app.php<\/code>tiedosto ja lis\u00e4\u00e4 siihen seuraavat rivit.<\/p>\n<p>Lis\u00e4\u00e4 t\u00e4m\u00e4n paketin palveluntarjoaja <code>$providers<\/code>matriisiin.<\/p>\n<pre><code>InterventionImageImageServiceProvider::class<\/code><\/pre>\n<p>Lis\u00e4\u00e4 seuraavaksi julkisivu <code>$aliases<\/code>taulukkoon.<\/p>\n<pre><code>'Image' =&gt; InterventionImageFacadesImage::class<\/code><\/pre>\n<h3>Muuta kuvan kokoa Laravelissa<\/h3>\n<p>Kuvan koon muuttamiseksi meid\u00e4n on ensin kirjoitettava koodi kuvan lataamista varten. Joten luo ensin hakemisto, johon tallennamme kuvat. Siirry p\u00e4\u00e4telaitteeseen ja suorita komento:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>T\u00e4m\u00e4 komento luo &#8217;storage&#8217; -hakemiston &#8217;public&#8217; -kansioon. Tallennuskansioon tallennetaan kuvien koko ja pikkukuva.<\/p>\n<p>Luo seuraavaksi lomake n\u00e4kym\u00e4tiedostoon. Lis\u00e4\u00e4n my\u00f6s koodin menestystiedolle ter\u00e4tiedostossa.<\/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>Korvaa paikkamerkki &#8217;PASS_ACTION_URL&#8217; reitill\u00e4si.<\/p>\n<p>Ohjaimessa on lis\u00e4tt\u00e4v\u00e4 <code>config\/app.php<\/code>tiedostoon lis\u00e4tt\u00e4v\u00e4n kirjaston julkisivu &#8217;Image&#8217; .<\/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>Lis\u00e4\u00e4m\u00e4ll\u00e4 julkisivu voimme kutsua Intervention Image -kirjaston toimintoja. L\u00e4het\u00e4n alla olevan koodin kuvan kahteen paikkaan. Yksi on alkuper\u00e4inen kuva &quot;profile_images&quot; -kansiossa. Toinen on hakemistossa &#8217;profile_images \/ thumbnail&#8217;. L\u00e4het\u00e4n ensin alkuper\u00e4isen kuvan pikkukansioon ja muutan sen kokoa.<\/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>T\u00e4ss\u00e4 muutan kuvan kokoa suhteellisesti. N\u00e4in pid\u00e4t kuvasuhteen, eik\u00e4 kuva leikkaa. Olen l\u00e4p\u00e4issyt leveyden 400 ja korkeuden 150. Voit muuttaa n\u00e4it\u00e4 arvoja vaatimuksesi mukaan.<\/p>\n<p>Jos etsit kovaa rajausta, vaihda rivien alapuolelle<\/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>Kanssa<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(100, 100)-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>T\u00e4m\u00e4n j\u00e4lkeen saat pikkukuvan, jonka koko on 100 * 100.<\/p>\n<p>Toivon, ett\u00e4 saatat oppia kuvan koon muuttamisesta Laravelissa Intervention Image -kirjaston avulla. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuvan-optimointi-artisansweb-image-optimizer-paketilla\/\" title=\"Kuvan optimointi artisansweb \/ image-optimizer -paketilla\">Kuvan optimointi artisansweb \/ image-optimizer -paketilla<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-ja-pakata-kuvia-laravelissa\/\" title=\"Opas kuvien lataamiseen ja pakkaamiseen Laravelissa\">Opas kuvien lataamiseen ja pakkaamiseen Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/muuta-kuvan-kokoa-php-ssa-tinypng-n-avulla\/\" title=\"Muuta kuvan kokoa PHP: ss\u00e4 TinyPNG: n avulla\">Muuta kuvan kokoa PHP: ss\u00e4 TinyPNG: n avulla<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Etsitk\u00f6 kuvan kokoa Laravelissa? T\u00e4ss\u00e4 artikkelissa tutkitaan, miten kuvan kokoa muutetaan Laravelissa Intervention Image -kirjaston avulla. Kuvan kokoa muutetaan<\/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":[499],"tags":[843],"class_list":["post-24626","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=24626"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24626\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21676"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=24626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=24626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=24626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}