[Resolvido] Receber Selfie[foto] e aplicar filtro

Pessoal bom dia!

Queria uma ajuda sobre como eu poderia solicitar uma selfie para o usuário e o bot enviar para algum lugar e aplicar um filtro e depois disso retornar para ele com o filtro aplicado.

Tipo oque teve no Bots4u.

Boa tarde @igor_junio_dos_santo, nesse caso você precisará de uma API para realizar esse feito.

Uma API que receba o link da imagem (o blip converte a imagem em link), aplique um filtro e retorne a imagem

1 Curtida

Tem algum exemplo disso?

1 Curtida

PHP para merge de fotos

Quando eu precisei eu fui atras e fiz esse bloco de código, agora você tem que fazer uma api do seu lado para receber isso.

Eu tenho um crud: https://github.com/igorjunio2015/crud-php-oracle só para da uma noção, nesse caso eu conecto ele com o bd oracle.

Nesse caso você vai precisar armazenar a foto da pessoa cortada para enviar novamente.

<?php
// Coloque o filtro e a foto para aplicar a marca d'água
$filter= imagecreatefrompng('https://pngriver.com/wp-content/uploads/2018/03/Download-Black-Border-Frame-PNG-Picture-069-1000x1000.png');
$foto = imagecreatefromjpeg('https://img.cancaonova.com/cnimages/canais/uploads/sites/6/2018/11/formacao_1600x1200-como-identificar-se-sou-uma-pessoa-narcisista.jpg');
// Definir as margens do filtro e obter a altura / largura da imagem do filtro
$marge_right = 0;
$marge_bottom = 0;
$sx = imagesx($filter);
$sy = imagesy($filter);

// Cortar a foto em 1:1
$fotoCortada = imagecrop($foto, [
    'x' => 0,
    'y' => 0,
    'width' => 1000,
    'height' => 1000
]);
if ($fotoCortada !== FALSE) {
    // Copie a imagem do filtro na foto usando as compensações de margem e a foto
    // Largura para calcular o posicionamento do filtro
    imagecopy($fotoCortada, $filter, imagesx($fotoCortada) - $sx - $marge_right, imagesy($fotoCortada) - $sy - $marge_bottom, 0, 0, imagesx($filter), imagesy($filter));
   
    // Saída e memória livre
    header('Content-type: image/png');
    imagepng($fotoCortada, 'merged.png');
    imagedestroy($foto);
    imagedestroy($fotoCortada);
}
?>