<pre>
<code>
<?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.
*/
?>
</code>
This code was to generate a barcode for Reader but it gives an error like: The image "file" can not be displayed because contained errors.
Could someone help?