{"id":29656,"date":"2021-06-20T13:26:00","date_gmt":"2021-06-20T10:26:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29656"},"modified":"2021-10-17T16:14:56","modified_gmt":"2021-10-17T13:14:56","slug":"comprimir-imagenes-para-sitios-web-usando-resmush-it-en-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/comprimir-imagenes-para-sitios-web-usando-resmush-it-en-php\/","title":{"rendered":"Comprimir im\u00e1genes para sitios web usando reSmush.it en PHP"},"content":{"rendered":"<p>Publicado en <a href=\"https:\/\/artisansweb.net\/category\/php\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a><\/p>\n<p>Las im\u00e1genes embellecen su sitio web y a\u00f1aden una mejor experiencia de usuario a los visitantes. Sin embargo, las im\u00e1genes tambi\u00e9n pueden afectar el rendimiento del sitio y hacer que su velocidad sea incre\u00edblemente lenta. Y todos sabemos que los sitios web m\u00e1s lentos no pueden tener \u00e9xito en Internet.<\/p>\n<p>En este art\u00edculo, le mostramos c\u00f3mo comprimir im\u00e1genes para sitios web usando reSmush.it en PHP. Al utilizar este servicio, los usuarios pueden reducir el tama\u00f1o de las im\u00e1genes de su sitio web. Ayudar\u00e1 a mejorar la velocidad de la p\u00e1gina. ReSmush.it es una herramienta de compresi\u00f3n de im\u00e1genes gratuita. Un usuario puede comprimir tantas im\u00e1genes como desee. No existe tal l\u00edmite en el n\u00famero de im\u00e1genes.<\/p>\n<p>En el momento de escribir este art\u00edculo, <a href=\"https:\/\/resmush.it\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reSmush.it<\/a> comprime m\u00e1s de 7 mil millones de im\u00e1genes hasta ahora y sigue contando. Este n\u00famero demuestra que es un servicio bastante popular entre los usuarios.<\/p>\n<h3>Empezando<\/h3>\n<p>Creemos un formulario simple donde el usuario puede subir la imagen. Al enviar la imagen, usando PHP enviaremos la imagen a los servicios reSmush.it y recibimos la versi\u00f3n optimizada de nuestra imagen.<\/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>Aqu\u00ed agregamos una entrada de archivo y un bot\u00f3n de env\u00edo. Tambi\u00e9n usamos un atributo <code>accept=\"image\/*\"<\/code>que le permite seleccionar solo archivos de imagen.<\/p>\n<h3>Comprimir im\u00e1genes para sitios web en PHP<\/h3>\n<p>Ahora, tenemos que interactuar con la API reSmush.it. Vamos a escribir un c\u00f3digo que realiza los siguientes pasos.<\/p>\n<ul>\n<li>Sube una imagen a nuestro servidor.<\/li>\n<li>Env\u00ede la imagen cargada al punto final de la API reSmush.it.<\/li>\n<li>Recibe la ruta de una imagen optimizada.<\/li>\n<li>Almacene esta versi\u00f3n optimizada en nuestro servidor reemplazando la imagen original.<\/li>\n<\/ul>\n<p>Antes de continuar, aseg\u00farese de haber habilitado la extensi\u00f3n cURL en su 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>En el c\u00f3digo anterior, configur\u00e9 el valor de calidad en &#8217;80&#8217; que se recomienda. Puede ajustar este n\u00famero a m\u00e1s o menos. Estamos almacenando im\u00e1genes dentro del <code>uploads<\/code>directorio. En su caso, puede ajustar este directorio.<\/p>\n<p>Espero que comprenda c\u00f3mo comprimir im\u00e1genes para el sitio web en PHP usando reSmush.it. Me gustar\u00eda escuchar sus pensamientos y sugerencias en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/tinypng-comprimir-imagenes-usando-php\/\" title=\"TinyPNG Comprimir im\u00e1genes usando PHP\">TinyPNG Comprimir im\u00e1genes usando PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-cargar-y-comprimir-imagenes-en-laravel\/\" title=\"Una gu\u00eda para cargar y comprimir im\u00e1genes en Laravel\">Una gu\u00eda para cargar y comprimir im\u00e1genes en Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/optimizacion-de-imagenes-mediante-el-paquete-artisansweb-image-optimizer\/\" title=\"Optimizaci\u00f3n de im\u00e1genes mediante el paquete artisansweb \/ image-optimizer\">Optimizaci\u00f3n de im\u00e1genes mediante el paquete artisansweb \/ image-optimizer<\/a><\/li>\n<\/ul>\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, le mostramos c\u00f3mo comprimir im\u00e1genes para un sitio web que aceleran su sitio web. Si lo hace, mejora el rendimiento de su sitio y agrega un mejor usuario.<\/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":[271],"tags":[849],"class_list":["post-29656","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\/29656","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=29656"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/29656\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=29656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=29656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=29656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}