{"id":25171,"date":"2021-05-25T10:45:00","date_gmt":"2021-05-25T07:45:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25171"},"modified":"2021-10-17T18:49:59","modified_gmt":"2021-10-17T15:49:59","slug":"looge-laravelis-pisipilt-kasutades-sekkumise-pildikogu","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/looge-laravelis-pisipilt-kasutades-sekkumise-pildikogu\/","title":{"rendered":"Looge Laravelis pisipilt, kasutades sekkumise pildikogu"},"content":{"rendered":"<p>Veebisaidil tegeleme alati piltidega. N\u00f5ude alusel kasutame piltide erinevaid versioone. Arendajatele on hea tava luua \u00fche pildi erinevad versioonid ehk pisipildid. Neid pisipilte saab kasutada erineva suurusega piltide kuvamisel, s\u00f5ltuvalt konteineri suurusest. Konteineri suurusele vastava pildi kuvamine s\u00e4\u00e4stab ribalaiust ja parandab lehe laadimisaega. Suure pildi kuvamine v\u00e4ikeses konteineris on halb tava ja see kahjustab lehe laadimisaega. Seet\u00f5ttu on soovitatav luua pildist mitu pisipilti ja kasutada sobivat versiooni, kui see on vajalik.<\/p>\n<p>Selles artiklis uurime, kuidas luua Laravelis pisipilt, kasutades teeki Intervention Image. <a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sekkumispilt<\/a> on tasuta ja \u00fcks populaarsemaid teoseid piltide manipuleerimiseks. Taustal kasutab see teek piltide manipuleerimiseks GD teeki ja Imagicki.<\/p>\n<p>Selle \u00f5petuse jaoks koostan 3 pisipilti &#8211; v\u00e4ikesed, keskmised ja suured, vastavalt suurustega 150 93, 300 * 185, 550 340. Muutke neid suurusi vastavalt teie n\u00f5uetele.<\/p>\n<h3>Alustamine<\/h3>\n<p>Alustamiseks peate k\u00f5igepealt installima Laraveli Intervention Image teegi. Avage terminal oma projekti juurkataloogis ja k\u00e4ivitage j\u00e4rgmine k\u00e4sk:<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>P\u00e4rast teegi installimist avage <code>config\/app.php<\/code>fail ja lisage sinna j\u00e4rgmised read.<\/p>\n<p>Lisage <code>$providers<\/code>massiivi selle paketi teenusepakkujad .<\/p>\n<pre><code>InterventionImageImageServiceProvider::class<\/code><\/pre>\n<p>Lisage <code>$aliases<\/code>massiivile fassaad .<\/p>\n<pre><code>'Image' =&gt; InterventionImageFacadesImage::class<\/code><\/pre>\n<p>J\u00e4rgmisena tuleb kataloogi loomiseks vajalike piltide salvestamiseks. Minge terminali ja k\u00e4ivitage k\u00e4sk j\u00e4rgmiselt:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>See k\u00e4sk loob avaliku kausta alla salvestuskataloogi (s\u00fcmboolne link). Selles kaustas laadin \u00fcles originaalpildi ja selle pisipildid.<\/p>\n<h3>Looge Laravelis pisipilt<\/h3>\n<p>Oleme k\u00f5ik seadistanud p\u00f5hiseadistusega ja saame n\u00fc\u00fcd tegeliku koodi kirjutada. Loome teie vaatefaili vormi.<\/p>\n<pre><code>&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>Kontrolleris peate lisama raamatukogu fassaadi &quot;Pilt&quot;, mille oleme <code>config\/app.php<\/code>faili lisanud .<\/p>\n<pre><code>&lt;?php\n\u00a0\u00a0\nnamespace AppHttpControllers;\n\u00a0\u00a0\nuse IlluminateHttpRequest;\nuse Image;\n\u00a0\u00a0\nclass ImageController extends Controller\n{\n\u00a0\u00a0\n}<\/code><\/pre>\n<p>Fassaadi lisamisega saame helistada Intervention Image teegi funktsioonidele. Allolevas koodis laadin pildi \u00fcles kahte kohta. Algne pilt l\u00e4heb otse <code>storage\/profile_images<\/code>kausta sisse. Pisipildid salvestatakse <code>storage\/profile_images\/thumbnail<\/code>kataloogi. Esmalt laadime algse pildi pisipiltide kausta \u00fcles ja seej\u00e4rel suurust muudame.<\/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\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\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\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\/\/small thumbnail name\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$smallthumbnail = $filename.'_small_'.time().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/medium thumbnail name\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$mediumthumbnail = $filename.'_medium_'.time().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/large thumbnail name\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$largethumbnail = $filename.'_large_'.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', $smallthumbnail);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$request-&gt;file('profile_image')-&gt;storeAs('public\/profile_images\/thumbnail', $mediumthumbnail);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$request-&gt;file('profile_image')-&gt;storeAs('public\/profile_images\/thumbnail', $largethumbnail);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/create small thumbnail\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$smallthumbnailpath = public_path('storage\/profile_images\/thumbnail\/'.$smallthumbnail);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;createThumbnail($smallthumbnailpath, 150, 93);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/create medium thumbnail\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$mediumthumbnailpath = public_path('storage\/profile_images\/thumbnail\/'.$mediumthumbnail);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;createThumbnail($mediumthumbnailpath, 300, 185);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/create large thumbnail\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$largethumbnailpath = public_path('storage\/profile_images\/thumbnail\/'.$largethumbnail);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;createThumbnail($largethumbnailpath, 550, 340);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect('image')-&gt;with('success', \"Image uploaded successfully.\");\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>\u00dclaltoodud koodis talletan pilti 3 formaadis: v\u00e4ike, keskmine ja suur. P\u00e4rast nende salvestamist kutsume meetodi <code>createThumbnail<\/code>ja edastame meetodile vajaliku laiuse, k\u00f5rguse. M\u00e4\u00e4ratleme selle funktsiooni allpool. See funktsioon peaks minema samasse kontrollerisse.<\/p>\n<pre><code>\/**\n\u00a0* Create a thumbnail of specified size\n\u00a0*\n\u00a0* @param string $path path of thumbnail\n\u00a0* @param int $width\n\u00a0* @param int $height\n\u00a0*\/\npublic function createThumbnail($path, $width, $height)\n{\n\u00a0\u00a0\u00a0\u00a0$img = Image::make($path)-&gt;resize($width, $height, function ($constraint) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0$img-&gt;save($path);\n}<\/code><\/pre>\n<p>Siin muudame pildi suurust proportsionaalselt. Nii toimides s\u00e4ilitame kuvasuhte ja pilti ei l\u00f5igata.<\/p>\n<p>Kui otsite k\u00f5va saaki, asendage read allpool<\/p>\n<pre><code>$img = Image::make($path)-&gt;resize($width, $height, function ($constraint) {\n\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n});\n$img-&gt;save($path);<\/code><\/pre>\n<p>Koos<\/p>\n<pre><code>$img = Image::make($path)-&gt;resize($width, $height)-&gt;save($path);<\/code><\/pre>\n<p>Loodetavasti saate aru, kuidas luua sekkumispildi teeki abil pisipilt Laravelis. Tahaksin kuulda teie m\u00f5tteid allpool olevast kommentaaride jaotisest.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/laraveli-pildi-suuruse-muutmine-kasutades-sekkumise-pildikogu\/\" title=\"Laraveli pildi suuruse muutmine, kasutades sekkumise pildikogu\">Laraveli pildi suuruse muutmine, kasutades sekkumise pildikogu<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-pilte-laravelis-ules-laadida-ja-tihendada\/\" title=\"Juhend piltide \u00fcleslaadimiseks ja tihendamiseks Laravelis\">Juhend piltide \u00fcleslaadimiseks ja tihendamiseks Laravelis<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/laraveli-mitme-pildi-uleslaadimine-ja-suuruse-muutmine\/\" title=\"Laraveli mitme pildi \u00fcleslaadimine ja suuruse muutmine\">Laraveli mitme pildi \u00fcleslaadimine ja suuruse muutmine<\/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>Kas soovite pildi \u00fcleslaadimise ajal luua Laravelis pisipildi? Selles artiklis uurime, kuidas luua sekkumispildi abil mitu pisipilti<\/p>\n","protected":false},"author":1,"featured_media":21673,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[498],"tags":[842],"class_list":["post-25171","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=25171"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25171\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21673"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=25171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=25171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=25171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}