Posted on: July 15, 2020 11:24 AM
Posted by: Renato
Views: 1001
Manipulando imagens em PHP com o Intervention Image
Requerimentos: Que eu Usei
- PHP >=7.2
- Fileinfo Extension
Bibliotecas de Imagem Suportada:
- GD Library (>=2.0)
- Imagick PHP extension (>=6.5.7)
`composer require intervention/image`
Então, vamos utilizar a imagem abaixo como base
A image1.png está em 1920×1200, a primeira coisa que podemos fazer é redimensionar a imagem. Para isso, basta utilizarmos o seguinte código: imageResize.php
```
<?php
// incluindo o autoload de classes
require 'vendor/autoload.php';
// importando a classe Manager do Intervention Image
use Intervention\Image\ImageManager;
// instanciando um gerenciador de imagem com a "engine" escolhida (GD no caso)
$manager = new ImageManager(array('driver' => 'GD'));
// lendo a image1.png, redimencionando para 300x200 e salvando como image2.png
$image = $manager->make('image1.png')->resize(300, 200)->save('image2.png');
```
E o resultado é a image2.png com 300x300
Agora vamos por exemplo escrever um texto no topo da imagem. Para isso, usaremos o método text(). No arquivo imageText.php
```
<?php
// incluindo o autoload de classes
require 'vendor/autoload.php';
// importando a classe Manager do Intervention Image
use Intervention\Image\ImageManager;
// instanciando um gerenciador de imagem com a "engine" escolhida (GD no caso)
$manager = new ImageManager(array('driver' => 'GD'));
// lendo a image2.png
$image = $manager->make('image2.png');
// escrevendo o texto "O topo do mundo" na posição x=200px e y=10px e definindo atributos da font
$image->text('O topo do mundo',200,10, function($font) {
$font->size(20); //defininindo o tamanho como 20
$font->color('#ffffff'); //definindo a cor como branco
$font->align('right'); //definindo o alinhamento como centralizado
})->save('image3.png'); //salvando como image3.png
```
Agora vamos colocar uma marca d’água na imagem. Escolha uma que voce vá usar.
Agora é só criarmos o imageWatermark.php
<?php
// incluindo o autoload de classes
require 'vendor/autoload.php';
// importando a classe Manager do Intervention Image
use Intervention\Image\ImageManager;
// instanciando um gerenciador de imagem com a "engine" escolhida (GD no caso)
$manager = new ImageManager(array('driver' => 'GD'));
// lendo a image3.png
$image = $manager->make('image3.png');
// colocando a watermark.png como marca d'água da imagem
$image->insert('watermark.png');
//salvando como image4.png
$image->save('image4.png');
E então teremos como image4.png com sua logo.
Além desses métodos apresentados, o Intervention Image possui muitos outros métodos que podem ser vistos na documentação oficial.
- https://github.com/lucenarenato/watermark-with-imagemagick-PHP
- https://imasters.com.br/back-end/manipulando-imagens-em-php-com-o-intervention-image
Donate to Site
Renato
Developer