{"id":230704,"date":"2022-12-02T18:38:00","date_gmt":"2022-12-02T15:38:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230704"},"modified":"2022-11-09T23:37:07","modified_gmt":"2022-11-09T20:37:07","slug":"kuvien-koon-muuttaminen-ohjelmallisesti-wordpressissae","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/kuvien-koon-muuttaminen-ohjelmallisesti-wordpressissae\/","title":{"rendered":"Kuvien koon muuttaminen ohjelmallisesti WordPressiss\u00e4"},"content":{"rendered":"\n<p>Jos olet joskus joutunut muuttamaan kuvien kokoa ohjelmallisesti WordPressiss\u00e4, olet ehk\u00e4 t\u00f6rm\u00e4nnyt <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/image_resize\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">image_resize<\/a><\/strong> &#8211; funktioon.<\/p>\n<p>Lis\u00e4ksi saatat tiet\u00e4\u00e4, ett\u00e4 se on poistettu k\u00e4yt\u00f6st\u00e4 (koska t\u00e4m\u00e4 n\u00e4kyy n\u00e4yt\u00f6n yl\u00e4reunassa):<\/p>\n<blockquote>\n<p>T\u00e4m\u00e4 toiminto on vanhentunut. K\u00e4yt\u00e4 sen sijaan <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_get_image_editor\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_get_image_editor():<\/a><\/strong> ta.<\/p>\n<\/blockquote>\n<p>Ja sen vanhentuminen, kuten on totta kaikille niille, jotka tekev\u00e4t hyv\u00e4\u00e4 ty\u00f6t\u00e4 toiminnallisuuden poistamiseksi, se ei ole ilman sen korvaamista.<\/p>\n<p>T\u00e4ss\u00e4 tapauksessa puhumme WP-kuvaeditorista. T\u00e4m\u00e4 on WordPressin luokka, jonka avulla voimme suorittaa samat toiminnot kuvien koon muuttamiseen ohjelmallisesti, mit\u00e4 teimme aiemmin alkuper\u00e4isell\u00e4 toiminnolla.<\/p>\n<p>Selvyyden vuoksi t\u00e4m\u00e4 tietty viesti ei ole t\u00e4ydellinen opetusohjelma <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_image_editor\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\"><code>WP_Image_Editor<\/code><\/a><\/strong>.<\/p>\n<\/p>\n<p>Sen sijaan se on yksinkertainen opas kuvien koon muuttamiseen vanhentuneen toiminnon sijaan sek\u00e4 selitykset mahdollisten virheiden k\u00e4sittelyst\u00e4.<\/p>\n<h3>K\u00e4ytett\u00e4v\u00e4n kuvan l\u00f6yt\u00e4minen<\/h3>\n<p>Riippuen siit\u00e4, mit\u00e4 olet tekem\u00e4ss\u00e4, saatat pysty\u00e4 hakemaan kuvan tiedostonimen itse WordPressist\u00e4. t\u00e4ss\u00e4 esimerkiss\u00e4 aion kuitenkin yksinkertaisesti koodata tiedoston polun.<\/p>\n<p>T\u00e4m\u00e4 on helpoin tapa selitt\u00e4\u00e4, kuinka luokkaa k\u00e4ytet\u00e4\u00e4n verrattuna tangenttiin, jotta kuva voidaan hakea ohjelmallisesti, saada sen polku, l\u00e4hett\u00e4\u00e4 se editoriluokkaan ja niin edelleen.<\/p>\n<p>Oletetaan siis, ett\u00e4 annettu polku kuvaan on <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-00-filename-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jotain t\u00e4llaista:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}<\/code><\/pre>\n<p>Sit\u00e4 k\u00e4ytt\u00e4m\u00e4ll\u00e4 tallennamme sen muuttujaan, jonka voimme siirt\u00e4\u00e4 toiseen funktioon, jos haluamme k\u00e4ytt\u00e4\u00e4 alkuper\u00e4ist\u00e4 tiedostoa useita kertoja.<\/p>\n<h3>Kuvaeditorin esiintym\u00e4n hankkiminen<\/h3>\n<p>Seuraavaksi sinun on hankittava kuvaeditoriluokan esiintym\u00e4, jotta voit k\u00e4ytt\u00e4\u00e4 yll\u00e4 olevalla polulla olevaa kuvaa. Kaikkein yksinkertaisimmassa muodossaan se ei ole muuta kuin tiedostonimen v\u00e4litt\u00e4mist\u00e4 funktiolle ja sitten joukko argumentteja.<\/p>\n<p>T\u00e4ss\u00e4 viestiss\u00e4 en ole huolissani argumenttien joukosta \u2013 vain editorin esiintym\u00e4n hankkimisesta, jolla voin muuttaa kuvan kokoa.<\/p>\n<p>Voit napata esiintym\u00e4n mainitusta editorista <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-01-get-editor-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seuraavasti:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the editor for the filename of the image. \n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}\n\n$editor = wp_get_image_editor( $filename, array() );<\/code><\/pre>\n<p>T\u00e4m\u00e4 palauttaa joko ilmentym\u00e4n editorin esiintym\u00e4n <code>**[WP_Error](https:\/\/developer.wordpress.org\/reference\/classes\/wp_error\/)**<\/code>(yhdess\u00e4 virheilmoituksen ja muita tietoja, joita voit k\u00e4ytt\u00e4\u00e4 ongelman m\u00e4\u00e4ritt\u00e4miseen). On aina hyv\u00e4 tarkistaa, onko palautettu arvo virhe, ja <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-02-check-for-errors-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">keskeytt\u00e4\u00e4 tulevat toiminnot.<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the editor for the file and the size of the original image.\n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}\n\n$editor = wp_get_image_editor( $filename, array() );\nif (is_wp_error($editor)) {\n   \/\/ handle the problem however you deem necessary.\n}<\/code><\/pre>\n<p>Olettaen, ett\u00e4 virhett\u00e4 ei kuitenkaan ole, voit alkaa muuttaa kuvan kokoa.<\/p>\n<h3>Kuvan koon muuttaminen<\/h3>\n<p>Onneksi t\u00e4m\u00e4 on asia, joka on helppo tehd\u00e4. Tarvitset kolme tietoa:<\/p>\n<ol>\n<li>leveys,<\/li>\n<li>korkeus,<\/li>\n<li>ja haluatko rajata kuvan vai et.<\/li>\n<\/ol>\n<p>Kokemukseni mukaan kuvan rajaaminen on melkein aina parempi kuin ei, koska se v\u00e4ltt\u00e4\u00e4 omituisen venymisen tai v\u00e4\u00e4ristymisen oudoilla kuvasuhteilla.<\/p>\n<p>Kun muutan kuvan kokoa, haluan aina saada kuvan nykyisen koon ja sitten luoda kertoimen avulla uudet mitat, joilla haluan muuttaa kuvan kokoa.<\/p>\n<p>Oletetaan esimerkiksi, ett\u00e4 minulla on kuva ja haluan muuttaa leveytt\u00e4 40 % ja korkeutta 30 %. T\u00e4t\u00e4 varten minun on:<\/p>\n<ol>\n<li>saada nykyisen kuvan koko,<\/li>\n<li>k\u00e4yt\u00e4 uutta leveytt\u00e4 ja korkeutta kuvan koon muuttamiseen.<\/li>\n<\/ol>\n<p>Ohjelmallisesti <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-03-sizing-the-image-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">se toimisi seuraavasti:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the editor for the file and the size of the original image.\n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}\n\n$editor = wp_get_image_editor( $filename, array() );\nif (is_wp_error($editor)) {\n   \/\/ Handle the problem however you deem necessary.\n}\n\n\/\/ Get the dimensions for the size of the current image.\n$dimensions = $editor-&gt;get_size();\n$width = $dimensions['width'];\n$height = $dimensions['height'];\n\n\/\/ Calculate the new dimensions for the image.\n$newWidth = 0.4 * $width;\n$newHeight = 0.3 * $height;\n\n\/\/ Resize the image.\n$result = $editor-&gt;resize($newWidth, $newHeight, true);<\/code><\/pre>\n<p>Tarpeeksi helppo seurata, eik\u00f6?<\/p>\n<h3>Kuvan tallentaminen<\/h3>\n<p>Lopuksi j\u00e4ljell\u00e4 on vain kuvan tallentaminen. T\u00e4ss\u00e4 tapauksessa kuva <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-04-saving-the-image-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kirjoitetaan<\/a><\/strong> lataushakemistoon (ja yleens\u00e4 WordPressin tarjoamaan vuoteen ja kuukauteen).<\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the editor for the file and the size of the original image.\n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}\n\n$editor = wp_get_image_editor( $filename, array() );\nif (is_wp_error($editor)) {\n   \/\/ handle the problem however you deem necessary.\n}\n\n\/\/ Get the dimensions for the size of the current image.\n$dimensions = $editor-&gt;get_size();\n$width = $dimensions['width'];\n$height = $dimensions['height'];\n\n\/\/ Calculate the new dimensions for the image.\n$newWidth = 0.4 * $width;\n$newHeight = 0.3 * $height;\n\n\/\/ Resize the image.\n$result = $editor-&gt;resize($newWidth, $newHeight, true);\n\n\/\/ If there's no problem, save it; otherwise, print the problem.\nif (!is_wp_error($result)) {\n  $editor-&gt;save($editor-&gt;generate_filename());\n} else {\n   \/\/ Handle the problem however you deem necessary.\n}<\/code><\/pre>\n<p>N\u00e4et sitten lopullisen version muutettuna (ja nimettyn\u00e4 asianmukaisesti) sen tulosteen perusteella.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4m\u00e4 viesti tarjoaa lyhyen, yksinkertaisen oppaan WP-kuvaeditorin k\u00e4ytt\u00e4miseen kuvien koon muuttamiseen ohjelmallisesti.<\/p>\n","protected":false},"author":1,"featured_media":163264,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,843,864],"tags":[1166],"class_list":["post-230704","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230704","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=230704"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230704\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/163264"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=230704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=230704"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=230704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}