{"id":233022,"date":"2023-02-03T18:59:00","date_gmt":"2023-02-03T15:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233022"},"modified":"2023-02-08T12:56:22","modified_gmt":"2023-02-08T09:56:22","slug":"kuvien-pakkaaminen-imagerecycle-api-lla-the-php-script","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/kuvien-pakkaaminen-imagerecycle-api-lla-the-php-script\/","title":{"rendered":"Kuvien pakkaaminen ImageRecycle API:lla (The PHP Script)?"},"content":{"rendered":"\n<p><a href=\"https:\/\/helloacm.com\/out\/imagerecycle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ImageRecycle<\/a> tarjoaa <a href=\"https:\/\/helloacm.com\/how-to-invoke-apis-the-javascriptajax-example\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sovellusliittymi\u00e4<\/a> kuvan\/pdf-tiedoston lis\u00e4\u00e4miseen, pakkaamiseen ja lataamiseen. T\u00e4m\u00e4 tekee asioista mielenkiintoisia, joten periaatteessa haluan nyky\u00e4\u00e4n pienent\u00e4\u00e4 kuvia v\u00e4hent\u00e4\u00e4kseni niiden tilaa <a href=\"https:\/\/helloacm.com\/ping-when-vpsdedicate-server-is-restarting\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VPS-palvelimella<\/a>. <a href=\"https:\/\/helloacm.com\/out\/imagerecycle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ImageRecycle<\/a> tukee seuraavien tiedostop\u00e4\u00e4tteiden optimointia: JPEG\/JPG, GIF, BMP, PNG, PDF.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-155144-61e556a536cd0.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-155144-61e556a536cd0.png\" alt=\"Kuvien pakkaaminen ImageRecycle API:lla (The PHP Script)?\"><\/a><\/p>\n<p>kuvien kierr\u00e4tys<\/p>\n<p>T\u00e4ss\u00e4 on API-dokumentaatio <a href=\"https:\/\/www.imagerecycle.com\/image-and-pdf-compression-api#api-Images-postImage\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uuden kuvan lis\u00e4\u00e4miseksi<\/a>. <strong>POST \/kuvat<\/strong><\/p>\n<p>Esimerkki:<\/p>\n<pre><code>\u00a0 curl -X POST \n\u00a0 \u00a0 -d 'auth={\"key\":\"your_api_key\",\"secret\":\"your_api_secret\"}' \n\u00a0 \u00a0 -d 'url=&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/uploadbeta.com\/share-image\/2xw\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;uploadbeta&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;share&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;image&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;2xw&lt;\/span&gt;&lt;\/a&gt;' \n\u00a0 \u00a0 -d 'params={\"compression_type\":\"lossy\"}' \n\u00a0 \u00a0 '&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/api.imagerecycle.com\/v1\/images\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;api&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;imagerecycle&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;v1&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;images&lt;\/span&gt;&lt;\/a&gt;'<\/code><\/pre>\n<p>Jos sen sijaan m\u00e4\u00e4ritet\u00e4\u00e4n paikallinen tiedosto, sinun on k\u00e4ytett\u00e4v\u00e4 seuraavaa syntaksia:<\/p>\n<pre><code>\u00a0 curl -X POST \n\u00a0 \u00a0 -F 'auth={\"key\":\"your_api_key\",\"secret\":\"your_api_secret\"}' \n\u00a0 \u00a0 -F 'file=@local_file.jpg' \n\u00a0 \u00a0 -F 'params={\"compression_type\":\"lossy\"}' \n\u00a0 \u00a0 '&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/api.imagerecycle.com\/v1\/images\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;api&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;imagerecycle&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;v1&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;images&lt;\/span&gt;&lt;\/a&gt;'<\/code><\/pre>\n<p>Ja t\u00e4ss\u00e4 on <a href=\"https:\/\/helloacm.com\/out\/imagerecycle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ImageRecycle<\/a> &#8211; tukitiimin apu. Kiitos nopeista vastauksista:<\/p>\n<blockquote>\n<p>Jos haluat l\u00e4hett\u00e4\u00e4 palvelimellesi tallennetun kuvan, se ei ole yksinkertainen POST-kysely, sinun on l\u00e4hetett\u00e4v\u00e4 POST-kysely, jonka sis\u00e4lt\u00f6tyyppi on multipart\/form-data.<br \/>\nCurlilla voit tehd\u00e4 sen k\u00e4ytt\u00e4m\u00e4ll\u00e4 -F-vaihtoehtoa -d-vaihtoehdon sijaan.<br \/>\nSinun on my\u00f6s m\u00e4\u00e4ritett\u00e4v\u00e4 parametrilla on tiedosto k\u00e4ytt\u00e4m\u00e4ll\u00e4 @-merkki\u00e4 ennen tiedoston nime\u00e4.<br \/>\nJos haluat lis\u00e4tietoja, se on dokumentoitu curl man -sivulla, joka on saatavilla verkossa: <a href=\"https:\/\/curl.haxx.se\/docs\/manpage.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/curl.haxx.se\/docs\/manpage.html<\/a><\/p>\n<p>T\u00e4ss\u00e4 on komentorivi, jota sinun tulee k\u00e4ytt\u00e4\u00e4:<\/p>\n<p>curl -X POST -F &#8217;auth={&quot;avain&quot;:&quot;oma_api_avain&quot;,&quot;salainen&quot;:&quot;oma_api_salaisuus&quot;}&#8217; -F &#8217;file=@the_file_to_send.png&#8217; -F &#8217;params={&quot;pakkaustyyppi&quot;:&quot;h\u00e4vi\u00f6inen&quot; }&#8217; &#8217; <a href=\"https:\/\/api.imagerecycle.com\/v1\/images\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/api.imagerecycle.com\/v1\/images<\/a> &#8217;<\/p>\n<p>Voit k\u00e4ytt\u00e4\u00e4 parametreja<br \/>\n\u2013 compression_type&quot;:&#8221;lossy&#8221; tai compression_type&#8221;:&#8221;lossless&#8221; h\u00e4vi\u00f6tt\u00f6m\u00e4\u00e4n tai h\u00e4vi\u00f6lliseen pakkaukseen<br \/>\n\u2013 &#8221;resize&#8221;:{&#8221;width&#8221;:100,&#8221;height&#8221;:100} muuttaaksesi kuvan kokoa tarvittaessa. voi m\u00e4\u00e4ritt\u00e4\u00e4 vain tai korkeuden<\/p>\n<p>T\u00e4ss\u00e4 tapauksessa pyynt\u00f6 olisi:<\/p>\n<p>curl -X POST -F &#8217;auth={&quot;avain&quot;:&quot;oma_api_avain&quot;,&quot;salainen&quot;:&quot;oma_api_salaisuus&quot;}&#8217; -F &#8217;file=@the_file_to_send.png&#8217; -F &#8217;params={&quot;pakkaustyyppi&quot;:&quot;h\u00e4vi\u00f6inen&quot; &quot;muuta kokoa&quot;:{&quot;width&quot;:100,&quot;height&quot;:100} }&#8217; &#8217; <a href=\"https:\/\/api.imagerecycle.com\/v1\/images\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/api.imagerecycle.com\/v1\/images<\/a> &#8217;<\/p>\n<\/blockquote>\n<p>Joten voimme kirjoittaa <a href=\"https:\/\/helloacm.com\/php-script-to-test-crontab\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP-skriptin<\/a>, kuten seuraamalla, optimoidaksemme paikalliset kuvat (pienenn\u00e4 tiedostokokoa koskematta mittoihin tai kuviin tai <a href=\"https:\/\/helloacm.com\/how-to-put-signature-on-pdf-documentfile\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PDF<\/a> -tiedostoon ).<\/p>\n<ol>\n<li>POSTAA paikallinen kuva\/pdf <a href=\"https:\/\/helloacm.com\/out\/imagerecycle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ImageRecycle-<\/a> palvelimelle POST \/images API :lla<\/li>\n<li>Nime\u00e4 paikallinen kuva\/pdf uudelleen varmuuskopion saamiseksi<\/li>\n<li>Lataa pakattu tiedosto <a href=\"https:\/\/helloacm.com\/out\/imagerecycle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ImageRecyclesta<\/a><\/li>\n<\/ol>\n<p>T\u00e4ss\u00e4 on kuvakaappaus, varmista, ett\u00e4 vaihdat app_key ja app_seret.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-155144-61e556a68413d.jpg\"><\/a><\/p>\n<p>imagerecycle-image-compression<\/p>\n<p>Ja palvelin vahvistaa t\u00e4m\u00e4n optimoinnin [Optimointihistoria]-paneelista.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-155144-61e556a7b5094.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-155144-61e556a7b5094.jpg\" alt=\"Kuvien pakkaaminen ImageRecycle API:lla (The PHP Script)?\"><\/a><\/p>\n<p>imagerecycle-image-compression-history<\/p>\n<p>Minulla on test.jpg, joka on optimoitu 1,7 miljoonasta 1,6 miljoonaan. Se ei ehk\u00e4 ole paljon, ja jos valitsen muita asetuksia, se saattaa tuoda minulle enemm\u00e4n s\u00e4\u00e4st\u00f6j\u00e4 (kuten koon muuttaminen). [Kirjoitan <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/imagerecyclen-ja-imagfyn-vertailu-kumpi-on-parempi\/\" title=\"toisen postauksen\">toisen postauksen<\/a> <a href=\"https:\/\/helloacm.com\/out\/imagerecycle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ImageRecyclen<\/a> ja muiden kilpailijoiden, kuten <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/imagify-wordpress-pluginin-kaeyttoe-kuvien-koon-pienentaemiseen\/\" title=\"Imagefyn\">Imagefyn<\/a>, arvioinnista .<\/p>\n<p>T\u00e4ydellinen l\u00e4hdekoodi:<\/p>\n<pre><code>#!\/usr\/bin\/php\n&lt;?php\n\/\/ Author: \u00a0&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/helloacm.com\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;helloacm&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;\/a&gt;\n\u00a0 $key = \"app_key\";\n\u00a0 $secret = \"app_secret\";\n\u00a0 \n\u00a0 function ImageRecycle($img, $key, $secret) { \u00a0\n\u00a0 \u00a0 $cmd = \"curl -X POST -F 'auth={\"key\":\"$key\",\"secret\":\"$secret\"}' -F 'file=@$img' -F 'params={\"compression_type\":\"lossy\"}' '&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/api.imagerecycle.com\/v1\/images\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;api&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;imagerecycle&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;v1&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;images&lt;\/span&gt;&lt;\/a&gt;'\";\n\u00a0 \u00a0 echo $cmd. \"n\"; \u00a0 \u00a0\n\u00a0 \u00a0 $rtn = json_decode(shell_exec($cmd), true);\n\u00a0 \u00a0 var_dump($rtn);\n\u00a0 \u00a0 $err = 201;\n\u00a0 \u00a0 if (isset($rtn['errCode'])) {\n\u00a0 \u00a0 \u00a0 $err = (integer)$rtn['errCode'];\n\u00a0 \u00a0 }\n\u00a0 \u00a0 $id = 0;\n\u00a0 \u00a0 if (isset($rtn['id'])) {\n\u00a0 \u00a0 \u00a0 $id = (integer)$rtn['id'];\n\u00a0 \u00a0 }\n\u00a0 \u00a0 if (($err == 201) || ($id &gt; 0)) {\n\u00a0 \u00a0 \u00a0 $optimized_url = $rtn['optimized_url'];\n\u00a0 \u00a0 \u00a0 if (strlen($optimized_url)) {\n\u00a0 \u00a0 \u00a0 \u00a0 echo \"Renaming original $img to ${img}_original n\";\n\u00a0 \u00a0 \u00a0 \u00a0 rename($img, $img.\"_original\");\n\u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 echo \"Downloading $optimized_url ...n\";\n\u00a0 \u00a0 \u00a0 $optimized_content = file_get_contents($optimized_url);\n\u00a0 \u00a0 \u00a0 echo \"Saving optimised to $img ...n\";\n\u00a0 \u00a0 \u00a0 file_put_contents($img, $optimized_content); \u00a0 \u00a0 \u00a0\n\u00a0 \u00a0 }\n\u00a0 } \u00a0\n\u00a0 \n\u00a0 foreach (array_slice($argv, 1) as $img) {\n\u00a0 \u00a0 if (!file_exists($img)) {\n\u00a0 \u00a0 \u00a0 echo $img. \" not found.n\";\n\u00a0 \u00a0 } else {\n\u00a0 \u00a0 \u00a0 ImageRecycle($img, $key, $secret);\n\u00a0 \u00a0 }\n\u00a0 } <\/code><\/pre>\n<p>Sitten olet suorittanut <a href=\"https:\/\/helloacm.com\/bash-for-loops\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bash-silmukan<\/a> toistaaksesi kaikki kuvat\/ <a href=\"https:\/\/helloacm.com\/markdown-markup-language-quick-tutorial\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PDF<\/a>, jonka pit\u00e4isi antaa sinulle v\u00e4lit\u00f6n tallennus.<\/p>\n<p>Olen onnistunut <a href=\"https:\/\/helloacm.com\/case-study-use-imagerecycle-to-save-over-2gb-storage-on-vps\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">s\u00e4\u00e4st\u00e4m\u00e4\u00e4n yli 2 Gt<\/a> <a href=\"https:\/\/helloacm.com\/programmers-should-use-ssd-change-hdd-of-lenovo-laptop-to-1tb-ssd-samsung\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">SSD<\/a> -tilaa VPS:ss\u00e4 k\u00e4ytt\u00e4m\u00e4ll\u00e4 yll\u00e4 olevaa komentosarjaa.<\/p>\n<p>Liity <a href=\"https:\/\/helloacm.com\/out\/imagerecycle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ImageRecycleen<\/a> ja k\u00e4yt\u00e4 kuponkia <strong><a href=\"https:\/\/helloacm.com\/out\/imagerecycle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IR-PARTNER-20<\/a><\/strong> saadaksesi 20 % alennuksen ensimm\u00e4isest\u00e4 laskusta, joka on vain lukijoilleni!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kuvien pakkaaminen ImageRecycle API:lla (The PHP Script)?<\/p>\n","protected":false},"author":1,"featured_media":224801,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[750,719,895,917,834,843,864],"tags":[1166],"class_list":["post-233022","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-avoin-laehdekoodi","category-kehittaejae","category-koodi","category-muut","category-opas-aloittelijoille","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233022","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=233022"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233022\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/224801"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=233022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=233022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=233022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}