{"id":27551,"date":"2021-05-18T15:54:00","date_gmt":"2021-05-18T12:54:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27551"},"modified":"2021-10-18T04:11:27","modified_gmt":"2021-10-18T01:11:27","slug":"otimizacao-de-imagens-usando-o-pacote-artisansweb-image-otimizer","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/otimizacao-de-imagens-usando-o-pacote-artisansweb-image-otimizer\/","title":{"rendered":"Otimiza\u00e7\u00e3o de imagens usando o pacote artisansweb \/ image-otimizer"},"content":{"rendered":"<p>J\u00e1 faz 4 anos que estou executando este blog. Junto com este blog, tamb\u00e9m tenho um <a href=\"https:\/\/www.youtube.com\/channel\/UCosi8Kv8-EPLt5TBJLlsWJA\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">canal no YouTube<\/a> onde compartilho v\u00eddeos que mostram como implementar meus artigos.<\/p>\n<p>Eu acredito em c\u00f3digo aberto. No meu site, n\u00e3o realizo nenhuma assinatura paga, n\u00e3o vendo e-books ou cursos. Gosto de manter os recursos gratuitos. Com isso em mente, criei meu primeiro pacote GitHub <a href=\"https:\/\/github.com\/artisansweb\/image-optimizer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">artisansweb \/ image-optimizer<\/a> que faz a tarefa de otimizar imagens para seu site.<\/p>\n<p>J\u00e1 escrevi alguns artigos sobre otimiza\u00e7\u00e3o de imagens. At\u00e9 agora, o TinyPNG era meu favorito e ainda \u00e9. Mas a limita\u00e7\u00e3o do TinyPNG \u00e9 que eles permitem otimizar 500 imagens gratuitas por m\u00eas. Acima de 500 imagens, voc\u00ea cobrar\u00e1 por imagem.<\/p>\n<p>Alguns dos artigos anteriores sobre otimiza\u00e7\u00e3o de imagem:<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/carregar-e-compactar-varias-imagens-em-php\/\" title=\"Carregar e compactar v\u00e1rias imagens em PHP\">Carregar e compactar v\u00e1rias imagens em PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-otimizar-a-imagem-ao-fazer-upload-em-php\/\" title=\"Como otimizar a imagem ao fazer upload em PHP\">Como otimizar a imagem ao fazer upload em PHP<\/a><\/li>\n<\/ul>\n<p>Existem outros pacotes tamb\u00e9m, mas eles exigem que instalemos softwares como JpegOptim, Optipng, etc. em nossa m\u00e1quina. Essa tamb\u00e9m n\u00e3o \u00e9 uma solu\u00e7\u00e3o vi\u00e1vel.<\/p>\n<p>No ano passado, estava trabalhando em um projeto de cliente que tem milhares de imagens necess\u00e1rias para compactar. Est\u00e1vamos \u00e0 procura de c\u00f3digo aberto e servi\u00e7o eficiente que possa fazer o nosso trabalho. Ent\u00e3o conhecemos o <a href=\"http:\/\/resmush.it\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reSmush.it,<\/a> que \u00e9 um servi\u00e7o totalmente gratuito para a otimiza\u00e7\u00e3o de imagens.<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/compactar-imagens-para-site-usando-resmush-it-em-php\/\" title=\"Compactar imagens para site usando reSmush.it em PHP\">Compactar imagens para site usando reSmush.it em PHP<\/a><\/li>\n<\/ul>\n<p>Embora eu tenha escrito um artigo sobre reSmush.it, sinto que posso criar um <a href=\"https:\/\/github.com\/artisansweb\/image-optimizer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pacote GitHub a<\/a> partir dele e fiz isso. Se voc\u00ea ler meu artigo em reSmush.it, ver\u00e1 que ele precisa adicionar cerca de 25-30 linhas de c\u00f3digo. Mas se voc\u00ea escolher o pacote, isso pode ser feito em 5-6 linhas.<\/p>\n<p>Dito isso, vamos discutir como instalar e usar o <code>artisansweb\/image-optimizer<\/code>pacote.<\/p>\n<h3>Otimiza\u00e7\u00e3o de imagens usando PHP<\/h3>\n<p>Primeiramente, voc\u00ea precisa instalar o pacote usando o Composer executando o comando:<\/p>\n<pre><code>composer require artisansweb\/image-optimizer<\/code><\/pre>\n<p>Ap\u00f3s a instala\u00e7\u00e3o do pacote, voc\u00ea pode otimizar a imagem usando o c\u00f3digo abaixo.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse ArtisansWebOptimizer;\n\u00a0\n$img = new Optimizer();\n\u00a0\n$source = 'SOURCE_PATH_OF_IMAGE';\n$img-&gt;optimize($source);<\/code><\/pre>\n<p>Aqui, voc\u00ea precisa passar o caminho completo do diret\u00f3rio da imagem de origem e sua imagem de origem \u00e9 otimizada automaticamente. \u00c0s vezes, voc\u00ea precisa manter a imagem original e armazenar a vers\u00e3o otimizada em outro diret\u00f3rio. Nesse caso, voc\u00ea pode usar um segundo par\u00e2metro para o destino.<\/p>\n<pre><code>&lt;?php\n$source = 'SOURCE_PATH_OF_IMAGE';\n$destination = 'DESTINATION_PATH_OF_IMAGE';\n$img-&gt;optimize($source, $destination);<\/code><\/pre>\n<p>Usando o c\u00f3digo acima, voc\u00ea pode otimizar suas imagens que est\u00e3o l\u00e1 dentro de seu diret\u00f3rio. No entanto, eu recomendaria otimizar a imagem no upload para que voc\u00ea n\u00e3o precise executar tarefas de otimiza\u00e7\u00e3o separadamente.<\/p>\n<p>O usu\u00e1rio pode otimizar a imagem no upload da seguinte maneira.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse ArtisansWebOptimizer;\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\u00a0\u00a0$img = new Optimizer();\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['file']['tmp_name'], 'images\/'.$_FILES['file']['name']);\n\u00a0\u00a0\u00a0\u00a0$img-&gt;optimize('images\/'.$_FILES['file']['name']);\n}\n?&gt;\n\u00a0\n&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"file\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Embora o reSmush.it tenha compactado bilh\u00f5es de imagens at\u00e9 agora, \u00e9 poss\u00edvel que seu servi\u00e7o esteja inativo por algum motivo. Lidei com este cen\u00e1rio no pacote. Por alguma raz\u00e3o, se o pacote n\u00e3o obtiver a vers\u00e3o otimizada de reSmush.it, ent\u00e3o, como alternativa, ele usa os m\u00e9todos nativos do PHP como imagecreatefromjpeg, imagecreatefrompng, imagecreatefromgif, imagejpeg para otimiza\u00e7\u00e3o.<\/p>\n<p>Existem v\u00e1rios novos recursos em andamento que irei adicionar no pacote e lan\u00e7\u00e1-lo em breve.<\/p>\n<p>Ficarei feliz se voc\u00ea usar o pacote e me contar como est\u00e1 funcionando na se\u00e7\u00e3o de coment\u00e1rios abaixo. Por favor, compartilhe seus coment\u00e1rios para que juntos possamos melhorar este pacote que ajudar\u00e1 a comunidade.<\/p>\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, mostro como realizar uma tarefa de otimiza\u00e7\u00e3o de imagem em PHP usando o pacote GitHub artisansweb \/ image-optimizer. Usando este pacote, voc\u00ea n\u00e3o precisa<\/p>\n","protected":false},"author":1,"featured_media":20571,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[278],"tags":[848],"class_list":["post-27551","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\/27551","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=27551"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27551\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/20571"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}