Boa noite, estou quebrando a cabeça para incluir marca d'agua em imagens no upload.
No upload eu consigo fazer o redimensionamento perfeito, inserir uma parte de outro código para inserir a marca d'agua, porpem ele não funcionou na primeira tentativa, fiz umas alterações, aí ele faz o redimensionamento, coloca a logo mas a imagem de fundo fica simplesmente preta..
Esse abaixo é o padrão no qual ele faz o upload da foto e redimensiona, TUDO CERTO!!
switch ($foto['type']):
case 'image/jpeg';
case 'image/pjpeg';
$imagem_temporaria = imagecreatefromjpeg($caminho_imagem);
$largura_original = imagesx($imagem_temporaria);
$altura_original = imagesy($imagem_temporaria);
$nova_largura = $largura ? $largura : floor(($largura_original / $altura_original) * $altura);
$nova_altura = $altura ? $altura : floor(($altura_original / $largura_original) * $largura);
$imagem_redimensionada = imagecreatetruecolor($nova_largura, $nova_altura);
imagecopyresampled($imagem_redimensionada, $imagem_temporaria, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura_original, $altura_original);
imagejpeg($imagem_redimensionada, $caminho_imagem);
Ai parti para inserir a parte para colocação da marca d'adua. O que foi incluso é aonde tem os comentários. Mas acontece neste momento que ele faz o upload e o redimensionamento normal mas não insere a marca d'agua
switch ($foto['type']):
case 'image/jpeg';
case 'image/pjpeg';
$imagem_temporaria = imagecreatefromjpeg($caminho_imagem);
// Obtem a logomarca
$imagem_logo = imagecreatefromgif( "logo_texto.gif" );
$largura_original = imagesx($imagem_temporaria);
$altura_original = imagesy($imagem_temporaria);
// Obtem a largura_nova da imagem
$larguraLogo = imagesx( $imagem_logo );
// Obtém a altura da imagem
$alturaLogo = imagesy( $imagem_logo );
// Calcula X 5px da latreral direira
$x_logo = imagesx( $imagem ) - $larguraLogo - 5;
// Calcula X 5px do rodapé
$y_logo = imagesy( $imagem ) - $alturaLogo - 5;
// Copia a logo para a imagem
imagecopymerge( $imagem, $imagem_logo, $x_logo, $y_logo, 0, 0, $larguraLogo, $alturaLogo, 100 );
$nova_largura = $largura ? $largura : floor(($largura_original / $altura_original) * $altura);
$nova_altura = $altura ? $altura : floor(($altura_original / $largura_original) * $largura);
$imagem_redimensionada = imagecreatetruecolor($nova_largura, $nova_altura);
imagecopyresampled($imagem_redimensionada, $imagem_temporaria, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura_original, $altura_original);
imagejpeg($imagem_redimensionada, $caminho_imagem);
Por fim apenas apenas troquei o nome imagem_logo na parte que iria inserir a marca d'agua por imagem_temporaria que já tinha no código antigo. Neste momento ele faz o upload, redimensiona e insere a marca d'agua, mas a imagem de fundo não aparece, fica um fundo preto.
switch ($foto['type']):
case 'image/jpeg';
case 'image/pjpeg';
$imagem_temporaria = imagecreatefromjpeg($caminho_imagem);
// Obtem a logomarca
$imagem_temporaria = imagecreatefromgif( "logo_texto.gif" );
$largura_original = imagesx($imagem_temporaria);
$altura_original = imagesy($imagem_temporaria);
// Obtem a largura_nova da imagem
$larguraLogo = imagesx( $imagem_temporaria );
// Obtém a altura da imagem
$alturaLogo = imagesy( $imagem_temporaria );
// Calcula X 5px da latreral direira
$x_logo = imagesx( $imagem ) - $larguraLogo - 5;
// Calcula X 5px do rodapé
$y_logo = imagesy( $imagem ) - $alturaLogo - 5;
// Copia a logo para a imagem
imagecopymerge( $imagem, $imagem_temporaria, $x_logo, $y_logo, 0, 0, $larguraLogo, $alturaLogo, 100 );
$nova_largura = $largura ? $largura : floor(($largura_original / $altura_original) * $altura);
$nova_altura = $altura ? $altura : floor(($altura_original / $largura_original) * $largura);
$imagem_redimensionada = imagecreatetruecolor($nova_largura, $nova_altura);
imagecopyresampled($imagem_redimensionada, $imagem_temporaria, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura_original, $altura_original);
imagejpeg($imagem_redimensionada, $caminho_imagem);
Se alguém puder da uma luz e dizer aonde estou errando.