✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Redimensionar imagem em PHP usando a biblioteca de imagens de intervenção

128

Você está procurando como redimensionar imagens em PHP? Enquanto trabalhamos no aplicativo da web, precisamos criar diferentes versões em miniatura da imagem original. A miniatura é a versão redimensionada de sua imagem original. Neste artigo, estudamos como fazer upload e redimensionar imagens em PHP.

Por que devemos redimensionar imagens?

No site, existem vários cenários em que precisamos exibir uma versão resumida de uma imagem grande. Um exemplo popular é a Galeria de imagens. Na galeria, costumávamos exibir uma lista de pequenas imagens. Quando um usuário clica na imagem pequena, ele abre a imagem grande no pop-up. Outro exemplo é a exibição de artigos relacionados, em que mostramos pequenas imagens junto com o título e a descrição de uma postagem.

Nesses cenários, precisamos gerar uma pequena imagem (miniatura) usando nossa imagem original. Uma pequena miniatura reduz o tamanho de suas páginas. Como você está usando uma pequena miniatura, o navegador requer pouca largura de banda para carregar a imagem. Isso adicionará alguns benefícios ao site. Alguns deles são:

  • Melhora o desempenho do servidor
  • Reduza a largura de banda
  • Melhore a velocidade da página

Dito isso, vamos dar uma olhada em como redimensionar a imagem em PHP.

Começando

Intervention Image é uma biblioteca de código aberto que atua como uma ferramenta de redimensionamento de imagens. Sob o capô, Intervention Image usa GD Library e Imagick para processamento e manipulação de imagens.

Para começar, você precisa instalar a biblioteca de imagens de intervenção em seu aplicativo. Eu recomendo usar o Composer para a instalação de uma biblioteca.

Abra o terminal no diretório raiz do seu projeto e execute o comando abaixo.

composer require intervention/image

Depois de instalar a biblioteca, você precisa incluir seu ambiente em seu aplicativo. Para isso, inclua abaixo de duas linhas o arquivo PHP.

<?php // include composer autoload require 'vendor/autoload.php';    use InterventionImageImageManagerStatic as Image;

Para fazer o upload e redimensionar a imagem, precisamos de um formulário onde se possa navegar pela imagem e clicar no botão enviar. Use o HTML abaixo que contém a entrada do arquivo e um botão de envio.

<form method="post" enctype="multipart/form-data">     <p><input type="file" name="image" /></p>     <input type="submit" name="submit" value="Submit"> </form>

Redimensionar imagem em PHP usando imagem de intervenção

Instalamos a biblioteca e criamos um formulário. Em seguida, temos que fazer o upload e redimensionar a imagem na hora. Vou criar dois diretórios uploadse thumbnails. Na uploadspasta, vamos armazenar a imagem original. A versão em miniatura da imagem será armazenada dentro do thumbnailsdiretório.

Use o código abaixo que armazenará a versão original e em miniatura da imagem nos diretórios uploadse thumbnails, respectivamente.

<?php require 'vendor/autoload.php';    use InterventionImageImageManagerStatic as Image;   $allowed_mime_type = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');   if (isset($_POST['submit'])) {       if (in_array($_FILES['image']['type'], $allowed_mime_type)) {           if (!file_exists('uploads')) {             mkdir('uploads', 0755);         }           $filename = time().'_'.$_FILES['image']['name'];         $filepath = 'uploads/'. $filename;         move_uploaded_file($_FILES['image']['tmp_name'], $filepath);           if (!file_exists('uploads/thumbnails')) {             mkdir('uploads/thumbnails', 0755);         }           $thumbnailpath = 'uploads/thumbnails/'. $filename;         $img = Image::make($filepath);         $img->resize(300, null, function ($constraint) {             $constraint->aspectRatio();         });         $img->save($thumbnailpath);     } }

No código acima, passei a largura como 300 e redimensionei a imagem mantendo sua proporção. Você pode passar o valor da largura de acordo com sua exigência. Manter a proporção do aspecto é recomendado ao redimensionar a imagem. Usando a relação de aspecto, a imagem não será esticada. No entanto, se você está procurando um corte difícil, substitua as linhas abaixo

$img->resize(300, null, function ($constraint) {     $constraint->aspectRatio(); });

Com

$img->resize(300, 150)->save($thumbnailpath);

Conclusão

Neste tutorial, estudamos como redimensionar imagens mantendo sua proporção. Também escrevemos um código que cortará a imagem com força. A biblioteca de imagens de intervenção fornece mais algumas opções para um resizemétodo. Você pode ler mais sobre isso em sua documentação.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação