0
<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" cannot be displayed because contained errors.
Someone could help?
There is no error: http://i.imgur.com/Omh5eo1.png, but you must have the
c39hrp48dhtt.ttf
in the SAME directory of the php file, in this case. That is,teste.php
andc39hrp48dhtt.ttf
are in the same directory.– Inkeliz
Look what happened in mine: http://imgur.com/a/2AetS
– Mateus José Pretti