{"id":27981,"date":"2021-05-18T16:23:00","date_gmt":"2021-05-18T13:23:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27981"},"modified":"2021-10-17T17:00:16","modified_gmt":"2021-10-17T14:00:16","slug":"optimizacion-de-imagenes-mediante-el-paquete-artisansweb-image-optimizer","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/optimizacion-de-imagenes-mediante-el-paquete-artisansweb-image-optimizer\/","title":{"rendered":"Optimizaci\u00f3n de im\u00e1genes mediante el paquete artisansweb \/ image-optimizer"},"content":{"rendered":"<p>Han pasado 4 a\u00f1os y ahora estoy ejecutando este blog. Junto con este blog, tambi\u00e9n tengo un <a href=\"https:\/\/www.youtube.com\/channel\/UCosi8Kv8-EPLt5TBJLlsWJA\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">canal de YouTube<\/a> donde comparto videos que muestran c\u00f3mo implementar mis art\u00edculos.<\/p>\n<p>Creo en el c\u00f3digo abierto. En mi sitio web no tengo ninguna membres\u00eda paga, no vendo libros electr\u00f3nicos ni cursos. Me gusta mantener los recursos libres. Con eso en mente, cre\u00e9 mi primer paquete de GitHub <a href=\"https:\/\/github.com\/artisansweb\/image-optimizer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">artisansweb \/ image-optimizer<\/a> que hace la tarea de optimizar las im\u00e1genes para su sitio web.<\/p>\n<p>Escrib\u00ed algunos art\u00edculos sobre optimizaci\u00f3n de im\u00e1genes en el pasado. Hasta ahora, TinyPNG era mi favorito y a\u00fan lo es. Pero la limitaci\u00f3n con TinyPNG es que permiten optimizar 500 im\u00e1genes gratuitas por mes. Por encima de 500 im\u00e1genes, se cobrar\u00e1 por imagen.<\/p>\n<p>Pocos art\u00edculos anteriores sobre optimizaci\u00f3n de im\u00e1genes:<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/cargar-y-comprimir-varias-imagenes-en-php\/\" title=\"Cargar y comprimir varias im\u00e1genes en PHP\">Cargar y comprimir varias im\u00e1genes en PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-optimizar-la-imagen-al-cargarla-en-php\/\" title=\"C\u00f3mo optimizar la imagen al cargarla en PHP\">C\u00f3mo optimizar la imagen al cargarla en PHP<\/a><\/li>\n<\/ul>\n<p>Tambi\u00e9n hay otros paquetes, pero requieren que instalemos software como JpegOptim, Optipng, etc. en nuestra m\u00e1quina. Esa tampoco es una soluci\u00f3n factible.<\/p>\n<p>El a\u00f1o pasado estuve trabajando en el proyecto de un cliente que tiene miles de im\u00e1genes necesarias para comprimir. Busc\u00e1bamos un servicio de c\u00f3digo abierto y eficiente que pudiera hacer nuestro trabajo. Luego conocimos <a href=\"http:\/\/resmush.it\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reSmush.it,<\/a> que es un servicio completamente gratuito para optimizar im\u00e1genes.<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/comprimir-imagenes-para-sitios-web-usando-resmush-it-en-php\/\" title=\"Comprimir im\u00e1genes para sitios web usando reSmush.it en PHP\">Comprimir im\u00e1genes para sitios web usando reSmush.it en PHP<\/a><\/li>\n<\/ul>\n<p>Aunque escrib\u00ed un art\u00edculo sobre reSmush.it, creo que puedo crear un <a href=\"https:\/\/github.com\/artisansweb\/image-optimizer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">paquete de GitHub a<\/a> partir de \u00e9l y as\u00ed lo hice. Si lees mi art\u00edculo sobre reSmush.it, encontrar\u00e1s que es necesario agregar entre 25 y 30 l\u00edneas de c\u00f3digo. Pero si opta por el paquete, puede hacerlo en 5-6 l\u00edneas.<\/p>\n<p>Dicho esto, analicemos c\u00f3mo instalar y usar el <code>artisansweb\/image-optimizer<\/code>paquete.<\/p>\n<h3>Optimizaci\u00f3n de im\u00e1genes usando PHP<\/h3>\n<p>Al principio, debe instalar el paquete utilizando Composer ejecutando el comando:<\/p>\n<pre><code>composer require artisansweb\/image-optimizer<\/code><\/pre>\n<p>Tras la instalaci\u00f3n del paquete, puede optimizar la imagen utilizando el siguiente c\u00f3digo.<\/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>Aqu\u00ed, debe pasar la ruta completa del directorio de la imagen de origen y su imagen de origen se optimiza autom\u00e1ticamente. A veces, es necesario conservar la imagen original y almacenar la versi\u00f3n optimizada en otro directorio. En ese caso, puede utilizar un segundo par\u00e1metro para el 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 el c\u00f3digo anterior, puede optimizar sus im\u00e1genes que est\u00e1n dentro de su directorio. Sin embargo, recomendar\u00eda optimizar la imagen en la carga para que no necesite realizar tareas de optimizaci\u00f3n por separado.<\/p>\n<p>El usuario puede optimizar la imagen en la carga de la siguiente manera.<\/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>Aunque reSmush.it comprimi\u00f3 miles de millones de im\u00e1genes hasta ahora, es posible que su servicio no funcione por alguna raz\u00f3n. Manej\u00e9 este escenario en el paquete. Por alguna raz\u00f3n, si el paquete no obtiene la versi\u00f3n optimizada de reSmush.it, entonces, como alternativa, usa los m\u00e9todos nativos de PHP como imagecreatefromjpeg, imagecreatefrompng, imagecreatefromgif, imagejpeg para la optimizaci\u00f3n.<\/p>\n<p>Hay varias caracter\u00edsticas nuevas en progreso que agregar\u00e9 en el paquete y lo lanzar\u00e9 pronto.<\/p>\n<p>Estar\u00e9 encantado si usa el paquete y me deja saber c\u00f3mo est\u00e1 funcionando en la secci\u00f3n de comentarios a continuaci\u00f3n. Comparta sus comentarios para que juntos podamos mejorar este paquete que ayudar\u00e1 a la comunidad.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo, muestro c\u00f3mo realizar la tarea de optimizaci\u00f3n de im\u00e1genes en PHP usando el paquete de GitHub artisansweb \/ image-optimizer. Usando este paquete, no necesita<\/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":[271],"tags":[849],"class_list":["post-27981","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27981"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27981\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/20571"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}