Creando un código de barras con php

Creando un código de barras con php

En este articulo les traigo como generar un código de barras con php es un código simple pero que lo pueden mejorar o hacerles las adecuaciones.

Aquí le pasamos como parámetro a la url el numero en la variable código y nos mostrara una imagen con el código de barras generado quedando un ejemplo.

localhost/barrras.php?codigo=507433

$altura = 50;
$cod = $_GET['numero'];

function tamano($numero,$altura)
{
    $cifras = strlen($numero) + 1;
    $dim['x'] = 7 + $cifras*6 + 9;
    $dim['y'] = $altura + 1;
    return $dim;
}

$dimensiones = tamano($cod,$altura);
$imagen = imagecreate($dimensiones['x'], $dimensiones['y']);

$blanco = imagecolorallocate($imagen,255,255,255);
$negro = imagecolorallocate($imagen,0,0,0);

imagefill($imagen, 0, 0, $blanco);
imagerectangle($imagen, 0, 0, imageSX($imagen) - 1, imageSY($imagen) - 1, $negro);

function cifra($num)
{
    return str_pad(decbin($num + 5), 4, '0', STR_PAD_LEFT);
}

function barra($y2, $x_ini, $codigo)
{
    global $imagen, $negro, $blanco;
    for($i = 0; $i <=3; $i++)
    {
        if($codigo[$i] == 0)
        {
            $color = $blanco;
        }else{
            $color = $negro;
        }
        $x = $x_ini + $i;
        imageline($imagen, $x, 5, $x, $y2, $color);
    }
}

function codigo($numero)
{
    global $imagen, $negro, $blanco, $altura;
    
    $x = 5;
    barra($altura - 5, $x, "1010");
    $x = $x + 7;
    
    for($e = 0; $e<=strlen($numero) - 1; $e++)
    {
        barra($altura - 15, $x, cifra($numero[$e]));
        imagestring($imagen, 2, $x, $altura - 15, $numero[$e], $negro);
        $x = $x + 6;
    }
    $x = $x + 1;
    barra($altura - 5, $x, "1011");
}

codigo($cod, $altura);
header("Content-type: image/png");
imagepng($imagen);