{"id":28831,"date":"2021-06-20T13:54:00","date_gmt":"2021-06-20T10:54:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28831"},"modified":"2021-10-18T03:58:11","modified_gmt":"2021-10-18T00:58:11","slug":"compactar-imagens-para-site-usando-resmush-it-em-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/compactar-imagens-para-site-usando-resmush-it-em-php\/","title":{"rendered":"Compactar imagens para site usando reSmush.it em PHP"},"content":{"rendered":"<p>Postado em <a href=\"https:\/\/artisansweb.net\/category\/php\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a><\/p>\n<p>As imagens tornam seu site bonito e adicionam uma melhor experi\u00eancia do usu\u00e1rio aos visitantes. No entanto, as imagens tamb\u00e9m podem afetar o desempenho do site e tornar a velocidade do site incrivelmente lenta. E todos n\u00f3s sabemos que sites mais lentos n\u00e3o podem ter sucesso na Internet.<\/p>\n<p>Neste artigo, mostramos como compactar imagens para sites usando reSmush.it em PHP. Usando este servi\u00e7o, os usu\u00e1rios podem reduzir o tamanho das imagens de seus sites. Isso ajudar\u00e1 a melhorar a velocidade da p\u00e1gina. O reSmush.it \u00e9 uma ferramenta gratuita de compress\u00e3o de imagens. Um usu\u00e1rio pode compactar quantas imagens desejar. N\u00e3o existe tal limite para o n\u00famero de imagens.<\/p>\n<p>No momento em que este artigo foi escrito, o <a href=\"https:\/\/resmush.it\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reSmush.it<\/a> compactava mais de 7 bilh\u00f5es de imagens at\u00e9 agora e ainda contando. Este n\u00famero prova que \u00e9 um servi\u00e7o bastante popular entre os usu\u00e1rios.<\/p>\n<h3>Come\u00e7ando<\/h3>\n<p>Vamos criar um formul\u00e1rio simples onde o usu\u00e1rio pode fazer o upload da imagem. Ao enviar a imagem, em PHP iremos enviar a imagem para os servi\u00e7os reSmush.it e receber a vers\u00e3o otimizada da nossa imagem.<\/p>\n<pre><code>&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"file\" name=\"image\" accept=\"image\/*\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\"&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Aqui, adicionamos um bot\u00e3o de entrada e envio de arquivo. Tamb\u00e9m usamos um atributo <code>accept=\"image\/*\"<\/code>que permite selecionar apenas arquivos de imagem.<\/p>\n<h3>Compactar imagens para sites em PHP<\/h3>\n<p>Agora, temos que interagir com a API reSmush.it. Vamos escrever um c\u00f3digo que executa as etapas a seguir.<\/p>\n<ul>\n<li>Carregue a imagem em nosso servidor.<\/li>\n<li>Envie a imagem carregada para o endpoint da API reSmush.it.<\/li>\n<li>Recebe o caminho de uma imagem otimizada.<\/li>\n<li>Armazene esta vers\u00e3o otimizada em nosso servidor, substituindo a imagem original.<\/li>\n<\/ul>\n<p>Antes de continuar, certifique-se de ter habilitado a extens\u00e3o cURL em seu servidor.<\/p>\n<pre><code>&lt;?php\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/allowed file types\n\u00a0\u00a0\u00a0\u00a0$arr_file_types = ['image\/png', 'image\/gif', 'image\/jpg', 'image\/jpeg'];\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!(in_array($_FILES['image']['type'], $arr_file_types))) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0die('Only image is allowed!');\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!file_exists('uploads')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir('uploads', 0777);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['image']['tmp_name'], 'uploads\/'. $_FILES['image']['name']);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ optimize image using reSmush.it\n\u00a0\u00a0\u00a0\u00a0$file = getcwd(). '\/uploads\/'. $_FILES['image']['name'];\n\u00a0\u00a0\u00a0\u00a0$mime = mime_content_type($file);\n\u00a0\u00a0\u00a0\u00a0$info = pathinfo($file);\n\u00a0\u00a0\u00a0\u00a0$name = $info['basename'];\n\u00a0\u00a0\u00a0\u00a0$output = new CURLFile($file, $mime, $name);\n\u00a0\u00a0\u00a0\u00a0$data = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"files\" =&gt; $output,\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_URL, 'http:\/\/api.resmush.it\/?qlty=80');\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POST,1);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POSTFIELDS, $data);\n\u00a0\u00a0\u00a0\u00a0$result = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0if (curl_errno($ch)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$result = curl_error($ch);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0curl_close ($ch);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$arr_result = json_decode($result);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ store the optimized version of the image\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init($arr_result-&gt;dest);\n\u00a0\u00a0\u00a0\u00a0$fp = fopen(getcwd(). '\/uploads\/'. $name, 'wb');\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_FILE, $fp);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_HEADER, 0);\n\u00a0\u00a0\u00a0\u00a0curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0curl_close($ch);\n\u00a0\u00a0\u00a0\u00a0fclose($fp);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0echo \"File uploaded successfully.\";\n}\n?&gt;<\/code><\/pre>\n<p>No c\u00f3digo acima, eu defino o valor de qualidade para &#8217;80&#8217;, o que \u00e9 recomendado. Voc\u00ea pode ajustar esse n\u00famero para mais ou menos. Estamos armazenando imagens dentro do <code>uploads<\/code>diret\u00f3rio. No seu caso, voc\u00ea pode ajustar este diret\u00f3rio.<\/p>\n<p>Espero que voc\u00ea entenda como compactar imagens para o site em PHP usando reSmush.it. Eu gostaria de ouvir seus pensamentos e sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/tinypng-compactar-imagens-usando-php\/\" title=\"TinyPNG compactar imagens usando PHP\">TinyPNG compactar imagens usando PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-upload-e-compactar-imagens-no-laravel\/\" title=\"Um Guia para Upload e Compacta\u00e7\u00e3o de Imagens no Laravel\">Um Guia para Upload e Compacta\u00e7\u00e3o de Imagens no Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/otimizacao-de-imagens-usando-o-pacote-artisansweb-image-otimizer\/\" title=\"Otimiza\u00e7\u00e3o de imagens usando o pacote artisansweb \/ image-otimizer\">Otimiza\u00e7\u00e3o de imagens usando o pacote artisansweb \/ image-otimizer<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, mostramos como compactar imagens para um site que acelere seu site. Isso melhora o desempenho do seu site e adiciona um usu\u00e1rio melhor.<\/p>\n","protected":false},"author":1,"featured_media":21612,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[278],"tags":[848],"class_list":["post-28831","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=28831"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28831\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=28831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=28831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=28831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}