✅ 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

114

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