Gerar Imagem e salvar
Boa Tarde pessoal..
Fiz um código que gera uma imagem, para assinatura de e-mail, e salva na pasa, na mesma pasta do projeto para efeitos de teste..
o codigo que gera a imagem..
geraimg.php
<?php
# Captura nome e e-mail
$empresa = $_POST['empresa'];
$nome = $_POST['nome'];
$funcao =$_POST['funcao'];
$unidade = $_POST['unidade'];
if($_POST['contato'] != ''){
$contato = ' | '. $_POST['contato'];
$contato = str_replace("(", "", $contato);
$contato = str_replace(")", "", $contato);
$contato = str_replace("-", ".", $contato);
}
function RemoveAcentos($sub){
$acentos = array(
'À','Á','Ã','Â', 'à','á','ã','â',
'Ê', 'É',
'Í', 'í',
'Ó','Õ','Ô', 'ó', 'õ', 'ô',
'Ú','Ü',
'Ç', 'ç',
'é','ê',
'ú','ü',
);
$remove_acentos = array(
'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
'e', 'e',
'i', 'i',
'o', 'o','o', 'o', 'o','o',
'u', 'u',
'c', 'c',
'e', 'e',
'u', 'u',
);
return str_replace($acentos, $remove_acentos, urldecode($sub));
}
function assinaturaPromova($pessoa){
$empresa = $pessoa['empresa'];
$file = $pessoa['file'];
$nome = RemoveAcentos($pessoa['nome']);
$funcao = RemoveAcentos($pessoa['funcao']);
$telefone = $pessoa['telefone'];
$unidade = $pessoa['unidade'];
if(isset($pessoa['contato'])){
$contato = $pessoa['contato'];
}
$nomeesp = str_replace(" ", "-", $nome);
$nomeesp = RemoveAcentos($nomeesp);
$arquivo = 'Assinatura_' . strtolower($nomeesp) . '.png';
$path = 'assinaturas-Promova/'.$arquivo;
# Cabeçalho da Imagem
header('Content-Type: image/png');
# Cria uma imagem TRUE COLOR
# imagecreatetruecolor(width,height)
$im = imagecreatetruecolor(600,142);
imagealphablending($im, false);
imagesavealpha($im,true);
# Cria uma cor
# imagecolorallocate(imagem, R,G,B);
$branco = imagecolorallocatealpha($im, 255,255,255,10);
$cinzaEscuro = imagecolorallocate($im, 120,121,123);
$cinzaClaro = imagecolorallocate($im, 93,93,93);
$preto = imagecolorallocate($im, 0,0,0);
# Preenche o plano de fundo
imagefill($im, 0, 0, $branco);
# Proporção do redimensionamento
$i = 1;
# Captura a largura e altura da imagem
list($width,$height) = getimagesize($file);
# Importa a imagem a ser redimensionada
$im_raw = imagecreatefrompng($file);
# Copia uma imagem para dentro da outra
imagecopyresampled(
$im, # Imagem do destino
$im_raw, # Imagem da origem
0, # Coordenada X do destino
0, # Coordenada Y do destino
0, # Coordenada X da origem
0, # Coordenada Y da origem
$width*$i, # Largura no destino
$height*$i, # Altura no destino
$width, # Largura na origem
$height); # Altura na origem
$positionArray = imagettfbbox(12.5, 0, 'fonts/MyriadPro-Semibold.otf' , $nome);
$posicao = 244 + $positionArray[4];
# Insere um texto com fonte TTF / OTF
# imagettftext(imagem,tamanho,angulo,x,y,cor,fonte,string)
imagettftext($im,12.5,0,243.1,75,$cinzaEscuro,'fonts/MyriadPro-Semibold.otf',$nome);
imagettftext($im,12.5,0,$posicao,75,$cinzaClaro,'fonts/MyriadPro-Regular.otf',' | '.$funcao.' | '.$unidade);
imagettftext($im,12,0,243.1,92,$cinzaClaro,'fonts/MyriadPro-Regular.otf', $telefone . $contato);
imagettftext($im,12,0,243.1,110,$cinzaClaro,'fonts/MyriadPro-Regular.otf','www.promovaideias.com.br');
imagepng($im, $path);
}
switch ($empresa) {
case 'promova':
switch ($unidade) {
case 'PR':
$telefone = "41 3333.7030";
break;
case 'DF':
$telefone = "61 3383.6030";
break;
case 'SP':
$telefone = "41 3333.7030";
break;
case 'RS':
$telefone = "51 3024.1520";
break;
case 'GO':
$telefone = "62 3275.6778";
break;
case 'RJ':
$telefone = "21 2205.7881";
break;
}
# Arquivo da imagem
$file = 'img/promova.png';
if(isset($contato)){
$pessoa = ['nome' => $nome, 'funcao' => $funcao, 'telefone' => $telefone, 'contato' => $contato, 'file' => $file, 'unidade' => $unidade, 'empresa' => $empresa];
}else{
$pessoa = ['nome' => $nome, 'funcao' => $funcao, 'telefone' => $telefone, 'file' => $file, 'unidade' => $unidade, 'empresa' => $empresa];
}
assinaturaPromova($pessoa);
break;
case 'artcort':
# Arquivo da imagem
$file = 'img/artcort2.png';
if(isset($contato)){
$pessoa = ['nome' => $nome, 'funcao' => $funcao, 'telefone' => '41.3083.1053', 'contato' => $contato, 'file' => $file, 'empresa' => $empresa];
}else{
$pessoa = ['nome' => $nome, 'funcao' => $funcao, 'telefone' => '41.3083.1053', 'file' => $file, 'empresa' => $empresa];
}
assinaturaArtcort($pessoa);
break;
default:
# Arquivo da imagem
$file = 'img/promova.png';
break;
}
Em localhost, ele gera a imagem, certinha, e salva na pasta especificada em $path. (assinaturas-Promova/Assinatura_nome-da-pessoa.png).
Só que quando o código esta no servidor, ele nao gera a imagem, ou se gera, ele nao esta salvando.. No servidor nao acusa nenhum erro.
ja setei chmod da pasta para 0777 e tbm nada..
Qualque ajuda é bem-vinda.. :D
Abraços...
Discussão (9)
Carregando comentários...