{"id":28212,"date":"2021-05-22T11:15:00","date_gmt":"2021-05-22T08:15:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28212"},"modified":"2021-10-17T16:51:37","modified_gmt":"2021-10-17T13:51:37","slug":"cambiar-el-tamano-de-la-imagen-en-laravel-usando-la-biblioteca-de-imagenes-de-intervencion","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/cambiar-el-tamano-de-la-imagen-en-laravel-usando-la-biblioteca-de-imagenes-de-intervencion\/","title":{"rendered":"Cambiar el tama\u00f1o de la imagen en Laravel usando la biblioteca de im\u00e1genes de intervenci\u00f3n"},"content":{"rendered":"<p>Recientemente, uno de nuestros lectores pregunt\u00f3 c\u00f3mo cambiar el tama\u00f1o de la imagen en Laravel. El cambio de tama\u00f1o de la imagen es una tarea habitual para los desarrolladores. Los desarrolladores deber\u00edan hacerlo correctamente. Es una buena pr\u00e1ctica cambiar el tama\u00f1o de las im\u00e1genes seg\u00fan el tama\u00f1o del contenedor. Te ayuda a mejorar la velocidad de la p\u00e1gina. En este art\u00edculo, estudiamos c\u00f3mo cambiar el tama\u00f1o de la imagen en Laravel usando la biblioteca de im\u00e1genes de intervenci\u00f3n.<\/p>\n<p><a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">La<\/a> biblioteca de <a href=\"http:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">im\u00e1genes de intervenci\u00f3n<\/a> proporciona una manera f\u00e1cil de cambiar el tama\u00f1o de las im\u00e1genes. Esta biblioteca utiliza GD Library e Imagick para la manipulaci\u00f3n de im\u00e1genes bajo el cap\u00f3.<\/p>\n<h3>\u00bfPor qu\u00e9 deber\u00eda cambiar el tama\u00f1o de las im\u00e1genes?<\/h3>\n<p>Tomemos el ejemplo de una galer\u00eda. Mientras trabajamos en una galer\u00eda, normalmente mostramos la peque\u00f1a miniatura en la lista. Cuando alguien hace clic en la miniatura, mostramos una imagen original. Aqu\u00ed, las miniaturas son la versi\u00f3n redimensionada de la imagen original.<\/p>\n<p>Digamos que el tama\u00f1o de la imagen original es 500 500 y el contenedor de miniaturas es de 200 200. En este caso, debe cambiar el tama\u00f1o de la imagen original seg\u00fan el tama\u00f1o del contenedor de miniaturas. Usar una imagen de gran tama\u00f1o en un recipiente peque\u00f1o es una mala pr\u00e1ctica. Afecta el rendimiento del sitio web.<\/p>\n<p>Este es un ejemplo de por qu\u00e9 deber\u00edamos cambiar el tama\u00f1o de las im\u00e1genes. Hay muchos otros tambi\u00e9n. Dicho esto, echemos un vistazo a c\u00f3mo cambiar el tama\u00f1o de la imagen en Laravel usando la biblioteca de im\u00e1genes de intervenci\u00f3n.<\/p>\n<h3>Instalaci\u00f3n<\/h3>\n<p>Para comenzar, debe instalar la biblioteca de im\u00e1genes de intervenci\u00f3n en su proyecto de Laravel. Deber\u00eda tener <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> instalado en su sistema. Abra la terminal en el directorio ra\u00edz de su proyecto y ejecute el siguiente comando:<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>Despu\u00e9s de instalar la biblioteca, abra el <code>config\/app.php<\/code>archivo y agregue las siguientes l\u00edneas.<\/p>\n<p>Agregue el proveedor de servicios de este paquete a la <code>$providers<\/code>matriz.<\/p>\n<pre><code>InterventionImageImageServiceProvider::class<\/code><\/pre>\n<p>A continuaci\u00f3n, agregue la fachada a la <code>$aliases<\/code>matriz.<\/p>\n<pre><code>'Image' =&gt; InterventionImageFacadesImage::class<\/code><\/pre>\n<h3>Cambiar el tama\u00f1o de la imagen en Laravel<\/h3>\n<p>Para cambiar el tama\u00f1o de la imagen, primero tenemos que escribir el c\u00f3digo para cargar una imagen. As\u00ed que primero crea un directorio donde almacenaremos las im\u00e1genes. Dir\u00edgete a la terminal y ejecuta el comando:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Este comando crea un directorio de &quot;almacenamiento&quot; en la carpeta &quot;p\u00fablica&quot;. En la carpeta &#8216;almacenamiento&#8217;, almacenaremos una versi\u00f3n completa y una miniatura de las im\u00e1genes.<\/p>\n<p>A continuaci\u00f3n, cree un formulario en su archivo de vista. Tambi\u00e9n estoy agregando c\u00f3digo para el mensaje de \u00e9xito en el archivo blade.<\/p>\n<pre><code>@if (session('success'))\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-success\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{{ session('success') }}\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n@endif\n&lt;form action=\"{{ url('PASS_ACTION_URL') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputFile\"&gt;File input&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"profile_image\" id=\"exampleInputFile\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Reemplaza el marcador de posici\u00f3n &#8216;PASS_ACTION_URL&#8217; con tu ruta.<\/p>\n<p>En el controlador, es necesario agregar la fachada &#8216;Imagen&#8217; de una biblioteca que hemos agregado en el <code>config\/app.php<\/code>archivo.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse Image;\n\u00a0\nclass ImageController extends Controller\n{\n\u00a0\n}<\/code><\/pre>\n<p>Al agregar la fachada, podemos llamar a funciones de la biblioteca de im\u00e1genes de intervenci\u00f3n. En el siguiente c\u00f3digo, subir\u00e9 la imagen en dos lugares. Una es la imagen original en la carpeta &#8216;profile_images&#8217;. El segundo est\u00e1 en el directorio &#8216;profile_images \/ thumbnail&#8217;. Primero cargar\u00e9 la imagen original en la carpeta de miniaturas y luego la cambiar\u00e9 de tama\u00f1o.<\/p>\n<pre><code>public function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0if($request-&gt;hasFile('profile_image')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $request-&gt;file('profile_image')-&gt;getClientOriginalName();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $request-&gt;file('profile_image')-&gt;getClientOriginalExtension();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.time().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Upload File\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$request-&gt;file('profile_image')-&gt;storeAs('public\/profile_images', $filenametostore);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$request-&gt;file('profile_image')-&gt;storeAs('public\/profile_images\/thumbnail', $filenametostore);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Resize image here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$thumbnailpath = public_path('storage\/profile_images\/thumbnail\/'.$filenametostore);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img = Image::make($thumbnailpath)-&gt;resize(400, 150, function($constraint) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img-&gt;save($thumbnailpath);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect('image')-&gt;with('success', \"Image uploaded successfully.\"); \/\/change the route as per your flow\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Aqu\u00ed estoy cambiando el tama\u00f1o de la imagen proporcionalmente. Al hacerlo, mantendr\u00e1 la relaci\u00f3n de aspecto y la imagen no se cortar\u00e1. He pasado el ancho como 400 y la altura como 150. Puede cambiar estos valores seg\u00fan sus necesidades.<\/p>\n<p>Si est\u00e1 buscando un recorte dif\u00edcil, reemplace las l\u00edneas siguientes<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(400, 150, function($constraint) {\n\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n});\n$img-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Con<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(100, 100)-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Despu\u00e9s de esto, obtendr\u00e1 la miniatura con una dimensi\u00f3n de 100 * 100.<\/p>\n<p>Espero que aprendas a cambiar el tama\u00f1o de la imagen en Laravel usando la biblioteca de im\u00e1genes de intervenci\u00f3n. Comparta 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\/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<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\/cambiar-el-tamano-de-la-imagen-en-php-usando-tinypng\/\" title=\"Cambiar el tama\u00f1o de la imagen en PHP usando TinyPNG\">Cambiar el tama\u00f1o de la imagen en PHP usando TinyPNG<\/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>\u00bfEst\u00e1s buscando cambiar el tama\u00f1o de la imagen en Laravel? En este art\u00edculo, estudiamos c\u00f3mo cambiar el tama\u00f1o de la imagen en Laravel usando la biblioteca de im\u00e1genes de intervenci\u00f3n. Cambiar el tama\u00f1o de la imagen<\/p>\n","protected":false},"author":1,"featured_media":21676,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[495],"tags":[849],"class_list":["post-28212","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28212","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=28212"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28212\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21676"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=28212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=28212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=28212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}