Giihh 6 Denunciar post Postado Novembro 27, 2015 Olá, vi no manual do php que existem diversas formas de gerar imagens http://php.net/manual/pt_BR/refs.utilspec.image.php Preciso fazer o seguinte: Determinar um tamanho padrão da imagem, trabalhar com duas fontes definir o tamanho de cada fonte na variavel com texto dinâmico, quebrar o texto em partes e cada parte ter uma fonte background cores aleatórias da paleta padrão de cores quando gerar a imagem salvar na pasta determinada E claro tem que ter uma quebra de linha automática dentro do limite da imagem Alguma ideia qual a melhor biblioteca para isso, e uma noção de quais funções poderei usar? Agradeço ajuda Compartilhar este post Link para o post Compartilhar em outros sites
icarof 9 Denunciar post Postado Novembro 28, 2015 Mano eu uso a GD, olha esse explo ae, é auto explicativo <?php // bibliote GD // Variaveis a serem impressas $nome = utf8_decode("Marcos Alaniaao"); $ra = utf8_decode("00000000"); $curso = utf8_decode("Pedagogia"); $turma = utf8_decode("A"); $nascimento = "04/10/1984"; $validade = "10/10/2016"; // fonte e tamanho $tamanhofonte = 14; $fonte = 'arialbd.ttf'; // Retorna o tamanho da imagem criada pela fonte acima carregada. $tamanho = imagettfbbox($tamanhofonte, 0, $fonte, $texto); $largura = $tamanho[2] + $tamanho[0] + 8; $altura = abs($tamanho[1]) + abs($tamanho[7]); // cria a imagem exatamente do tamanho informado pelo imagettfbbox $imagem = imagecreatefromjpeg("carterinha.jpg"); /* @Parametros * $largura - Largura que deve ser criada a imagem * $altura - Altura que deve ser criada a imagem */ // Primeira chamada do imagecolorallocate cria a cor de fundo da imagem imagecolorallocate($imagem, 255, 255, 255); // As demais chamadas criam cores para serem usadas na imagem $preto = imagecolorallocate($imagem, 0, 0, 0); // Adiciona o texto a imagem imagefttext($imagem, $tamanhofonte, 0, 230, 250, $preto, $fonte, $nome);//nome imagefttext($imagem, $tamanhofonte, 0, 230, 320, $preto, $fonte, $ra);//matricula imagefttext($imagem, $tamanhofonte, 0, 400, 320, $preto, $fonte, $curso);//curso imagefttext($imagem, $tamanhofonte, 0, 570, 320, $preto, $fonte, $turma);//Turma imagefttext($imagem, $tamanhofonte, 0, 230, 390, $preto, $fonte, $nascimento);//nasciemnto imagefttext($imagem, $tamanhofonte, 0, 470, 390, $preto, $fonte, $validade);//cidade //imagefttext($image, $size, $angle, $x, $y, $color, $fontfile, $text, $extrainfo); /* @Parametros * $imagem - Imagem previamente criada Usei imagecreate. poderia ter usado o imagecreatefromjpeg * $tamanhofonte - Tamanho da fonte em pixel * 0 - Posição X do texto na imagem * 0 - Posição Y do texto na imagem * abs($tamanho[5]) - Corrige o Y * $preto - Cor do texto * $fonte - Caminho relativo ou absoluto da fonte a ser carregada. * $texto - Texto que deverá ser escrito */ // Header informando que é uma imagem JPEG header('Content-type: image/jpeg'); // eEnvia a imagem para o borwser ou arquivo imagejpeg( $imagem, NULL, 80 ); /* @Parametros * $imagem - Imagem previamente criada Usei imagecreatefromjpeg * NULL - O caminho para salvar o arquivo. Se não definido ou NULL, o stream da imagem será mostrado diretamente. * 80 - Qualidade da compresão da imagem. */ ?> index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <img src="card.php" /> </body> </html> testa ae Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 28, 2015 rsrs obrigada icarof fiz assim: coloquei em um local no arquivo teste.php o trecho <img src="card.php" /> E criei o arquivo card.php e coloquei a font OpenSans-Bold.ttf no mesmo diretorio, alterando a fonte no codigo tambem Pelo que entendi pela configuração deveria exibir no local a imagem carterinha.jpg criada e no codigo fonte então ficaria assim: <img src="carterinha.jpg" /> Mas só ta aparecendo o quadradinho de imagem inexistente e no codigo fonte <img src="card.php" /> Compartilhar este post Link para o post Compartilhar em outros sites
icarof 9 Denunciar post Postado Novembro 28, 2015 No caso onde tem carteirinha, você coloca a imagem que você vai usar, o codigo foi feito pra usar as dimensões reais da imagem. tipo o arquivo card.php vai ser lido pela index como uma imagem, e não uma pagina, no caso onde tem $imagem = imagecreatefromjpeg("carterinha.jpg"); coloque a imagem que você pretende usar, onde você pretende mostrar coloque <img src="card.php" /> Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 28, 2015 continua não aparecendo vi no phpinfo(); o GD esta habilitado. Compartilhar este post Link para o post Compartilhar em outros sites
icarof 9 Denunciar post Postado Novembro 28, 2015 ta usando na hospedagen ou localhost? nota todos os arquivos tem que esta no mesmo diretorio. Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 28, 2015 localhost, testei esse exemplo http://php.eduardokraus.com/adicionando-texto-a-imagem-com-php e funcionou, mas o seu que parece ser mais proximo do que preciso não esta indo Compartilhar este post Link para o post Compartilhar em outros sites
icarof 9 Denunciar post Postado Novembro 28, 2015 Posta teu codigo ae pra ver se acho o erro Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 28, 2015 esta igual o seu arquivo index.php, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <img src="card.php" /> </body> </html> card.php <?php // bibliote GD // Variaveis a serem impressas $nome = utf8_decode("Marcos Alaniaao"); $ra = utf8_decode("00000000"); $curso = utf8_decode("Pedagogia"); $turma = utf8_decode("A"); $nascimento = "04/10/1984"; $validade = "10/10/2016"; // fonte e tamanho $tamanhofonte = 14; $fonte = 'OpenSans-Bold.ttf'; // Retorna o tamanho da imagem criada pela fonte acima carregada. $tamanho = imagettfbbox($tamanhofonte, 0, $fonte, $texto); $largura = $tamanho[2] + $tamanho[0] + 8; $altura = abs($tamanho[1]) + abs($tamanho[7]); // cria a imagem exatamente do tamanho informado pelo imagettfbbox $imagem = imagecreatefromjpeg("carterinha.jpg"); /* @Parametros * $largura - Largura que deve ser criada a imagem * $altura - Altura que deve ser criada a imagem */ // Primeira chamada do imagecolorallocate cria a cor de fundo da imagem imagecolorallocate($imagem, 255, 255, 255); // As demais chamadas criam cores para serem usadas na imagem $preto = imagecolorallocate($imagem, 0, 0, 0); // Adiciona o texto a imagem imagefttext($imagem, $tamanhofonte, 0, 230, 250, $preto, $fonte, $nome);//nome imagefttext($imagem, $tamanhofonte, 0, 230, 320, $preto, $fonte, $ra);//matricula imagefttext($imagem, $tamanhofonte, 0, 400, 320, $preto, $fonte, $curso);//curso imagefttext($imagem, $tamanhofonte, 0, 570, 320, $preto, $fonte, $turma);//Turma imagefttext($imagem, $tamanhofonte, 0, 230, 390, $preto, $fonte, $nascimento);//nasciemnto imagefttext($imagem, $tamanhofonte, 0, 470, 390, $preto, $fonte, $validade);//cidade //imagefttext($image, $size, $angle, $x, $y, $color, $fontfile, $text, $extrainfo); /* @Parametros * $imagem - Imagem previamente criada Usei imagecreate. poderia ter usado o imagecreatefromjpeg * $tamanhofonte - Tamanho da fonte em pixel * 0 - Posição X do texto na imagem * 0 - Posição Y do texto na imagem * abs($tamanho[5]) - Corrige o Y * $preto - Cor do texto * $fonte - Caminho relativo ou absoluto da fonte a ser carregada. * $texto - Texto que deverá ser escrito */ // Header informando que é uma imagem JPEG header('Content-type: image/jpeg'); // eEnvia a imagem para o borwser ou arquivo imagejpeg( $imagem, NULL, 80 ); /* @Parametros * $imagem - Imagem previamente criada Usei imagecreatefromjpeg * NULL - O caminho para salvar o arquivo. Se não definido ou NULL, o stream da imagem será mostrado diretamente. * 80 - Qualidade da compresão da imagem. */ ?> ai tem a imagem carterinha.jpg e a fonte OpenSans-Bold.ttf tudo no mesmo diretorio (na raiz) Compartilhar este post Link para o post Compartilhar em outros sites
icarof 9 Denunciar post Postado Novembro 28, 2015 tenta por jpeg com o "e" Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 28, 2015 tentei, não foi tentei alterar tambem imagecreatefromjpeg para so imagecreate e nada também Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 28, 2015 pra vc esta funcionando normal no localhost? Compartilhar este post Link para o post Compartilhar em outros sites
icarof 9 Denunciar post Postado Novembro 28, 2015 No localhsot esta, mas na hospedagem não. faz assim,se tu tiver usando o windows, vai nas opções de pasta e poe pra mostrar as extenções dos arquivos conhecidos. ai vc copia o nome da imagem que vai usar e poe la, onde ta carteirinha é o nome da sua imagem Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 28, 2015 Desconhecia essa opção no windows, obrigada. esta jpg mesmo, mesmo assim copie e colei e nada Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 28, 2015 <?php header("Content-type: image/gif"); //Informa ao browser que o arquivo é uma imagem no formato GIF $nome = utf8_decode("Marcos Alaniaao"); $ra = utf8_decode("00000000"); $curso = utf8_decode("Pedagogia"); $turma = utf8_decode("A"); $nascimento = "04/10/1984"; $validade = "10/10/2016"; // fonte e tamanho $tamanhofonte = 14; $fonte = 'OpenSans-Bold.ttf'; $imagem = ImageCreate(700,700); //Cria uma imagem com as dimensões 700x700 $vermelho = ImageColorAllocate($imagem, 255, 0, 0); //Cria o segundo plano da imagem e o configura para vermelho $branco = ImageColorAllocate($imagem, 255, 255, 255); //Cria a cor de primeiro plano da imagem e configura-a para branco imagefttext($imagem, $tamanhofonte, 0, 230, 250, $branco, $fonte, $nome);//nome imagefttext($imagem, $tamanhofonte, 0, 230, 320, $branco, $fonte, $ra);//matricula imagefttext($imagem, $tamanhofonte, 0, 400, 320, $branco, $fonte, $curso);//curso imagefttext($imagem, $tamanhofonte, 0, 570, 320, $branco, $fonte, $turma);//Turma imagefttext($imagem, $tamanhofonte, 0, 230, 390, $branco, $fonte, $nascimento);//nasciemnto imagefttext($imagem, $tamanhofonte, 0, 470, 390, $branco, $fonte, $validade);//cidade //Imprime na imagem os textos que estão na variável $branco ImageGif($imagem); //Converte a imagem para um GIF e a envia para o browser ImageDestroy($imagem); //Destrói a memória alocada para a construção da imagem GIF. ?> assim criou uma imagem gif, sem especificar uma imagem já existente, ficou bagunçado pois eu coloquei 700x700 pra criar a imagem desse tamanho Compartilhar este post Link para o post Compartilhar em outros sites