/* |-------------------------------------------------------------------------- | REMOÇÃO DE FUNDO NATIVA EM PHP (SEM API, SEM CHAVE, SEM VPS) |-------------------------------------------------------------------------- | Remove fundos sólidos (como branco ou cinza claro) automaticamente | usando tolerância de cor pixel a pixel via GD Library. |-------------------------------------------------------------------------- */ function removeBg(string $imagePath): string { if (!is_file($imagePath)) { return $imagePath; } // Se já tiver transparência nativa (PNG transparente), mantém if (hasTransparency($imagePath)) { return $imagePath; } $info = @getimagesize($imagePath); if (!$info) { return $imagePath; } $mime = $info['mime'] ?? ''; $img = null; switch ($mime) { case 'image/jpeg': $img = @imagecreatefromjpeg($imagePath); break; case 'image/png': $img = @imagecreatefrompng($imagePath); break; case 'image/webp': $img = @imagecreatefromwebp($imagePath); break; default: return $imagePath; } if (!$img) { return $imagePath; } $width = imagesx($img); $height = imagesy($img); // Cria nova imagem com suporte a canal alpha (transparência real) $output = imagecreatetruecolor($width, $height); imagealphablending($output, false); imagesavealpha($output, true); $transparent = imagecolorallocatealpha($output, 0, 0, 0, 127); imagefill($output, 0, 0, $transparent); // Pega a cor de fundo dominante na ponta superior esquerda (pixel 0,0) $bgColor = imagecolorat($img, 0, 0); $bgR = ($bgColor >> 16) & 0xFF; $bgG = ($bgColor >> 8) & 0xFF; $bgB = $bgColor & 0xFF; // Tolerância: quanto maior, mais tons parecidos com o fundo são removidos $tolerance = 40; for ($x = 0; $x < $width; $x++) { for ($y = 0; $y < $height; $y++) { $rgb = imagecolorat($img, $x, $y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; // Verifica se o pixel está próximo da cor do fundo (dentro da tolerância) if ( abs($r - $bgR) <= $tolerance && abs($g - $bgG) <= $tolerance && abs($b - $bgB) <= $tolerance ) { continue; // Deixa transparente (não copia) } // Copia o pixel original mantendo a opacidade $color = imagecolorallocatealpha($output, $r, $g, $b, 0); imagesetpixel($output, $x, $y, $color); } } // Salva o resultado processado em cache para acelerar novos usos $outputPath = UPLOAD_DIR . '/cutout_' . md5_file($imagePath) . '.png'; imagepng($output, $outputPath, 6); imagedestroy($img); imagedestroy($output); return $outputPath; } Gerador Pro de Cartazes
GERADOR PRO Cartazes de Igreja
RECORTE AUTOMÁTICO V4
ESTÚDIO DE DESIGN AUTOMATIZADO

Cartazes modernos com
as pessoas destacadas.

O sistema processa o fundo e recorta automaticamente os elementos enviados, integrando perfeitamente a composição visual do seu cartaz.

01
Informações principais Textos e dados gerais do evento
SEGUNDO LOGO — ABAIXO DO TEMA
02
Liderança (Cantos Inferiores) Pastor e Dirigente nas extremidades
03
Pessoas / convidados centrais Até 20 pessoas
💡 Dica de Ouro: Envie fotos da cintura para cima, com boa iluminação e fundo de cor única para um recorte perfeito.
Pessoas adicionadas: 1 / 20
1
04
Identidade visual Estilo de cor, formato e modelo do cartaz
05
Rodapé Informações complementares e créditos