Com PHP e a biblioteca GD você poderá manipular qualquer tipo de imagem. Isso inclui criar redimensionar imagens, Criar imagens a partir de textos
Atenção: Verifique se a biblioteca GD esta instalada no phpinfo(); Veja a imagem abaixo.
Esta é uma tarefa simples. Veja o exemplo comentado e expolicado:
<?php // Carregar imagem já existente no servidor $imagem = imagecreatefromjpeg( "foto.jpg" ); /* @Parametros * "foto.jpg" - Caminho relativo ou absoluto da imagem a ser carregada. */ // Cor de saída $cor = imagecolorallocate( $imagem, 255, 255, 255 ); /* @Parametros * $imagem - Imagem previamente criada Usei imagecreatefromjpeg * 255 - Cor vermelha ( RGB ) * 255 - Cor verde ( RGB ) * 255 - Cor azul ( RGB ) * -- No caso acima é branco */ // Texto que será escrito na imagem $nome = urldecode( $_GET['nome'] ); /* @Parametros * $_GET['nome'] - Texto que será escrito */ // Escrever nome imagestring( $imagem, 5, 15, 515, $nome, $cor ); /* @Parametros * $imagem - Imagem previamente criada Usei imagecreatefromjpeg * 5 - tamanho da fonte. Valores de 1 a 5 * 15 - Posição X do texto na imagem * 515 - Posição Y do texto na imagem * $nome - Texto que será escrito * $cor - Cor criada pelo imagecolorallocate */ // 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 NULL a imagem será mostrado no browser. * 80 - Qualidade da compresão da imagem. */
Veja o exemplo funcionando em php.eduardokraus.com/code/10026/index1.php. Estou usando minha foto do facebook.
Esta é uma dúvida comum. Mas o PHP resolve rápido rápido. Veja o exemplo comentado abaixo:
<?php $tamanhofonte = 100; // Fonte de código de barras que eu tenho em um sistema $fonte = 'c39hrp48dhtt.ttf'; // Texto que será impresso na imagem // Para que funcione com leitores é necessário // que seja iniciado e finalizado a String com o caracter '*' $texto = "*" . $_GET['nome'] . "*"; // 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 = imagecreate($largura, $altura); /* @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, 0, abs($tamanho[5]), $preto, $fonte, $texto); /* @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. */
Veja o exemplo funcionando em php.eduardokraus.com/code/10026/index2.php.
Quer o código fonte completo deste exemplo? Clique aqui.
Ficou com dúvidas, comente abaixo.