-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathboleto_barcode.php
79 lines (64 loc) · 1.68 KB
/
boleto_barcode.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
/**
* base criada por Aziz Vicentini
* azizvc@yahoo.com.br
* http://portalfacil.zgames.com.br
*
* Modificado por Bruno P. Gonçalves @ Agência General de Desenvolvimento Web
*
* Baixado em: https://www.scriptbrasil.com.br/download/codigo/6491/
*/
function codificar($codigo)
{
$cbinicio = "NNNN";
$cbfinal = "WNN";
$cbnumeros = array("NNWWN", "WNNNW", "NWNNW", "WWNNN", "NNWNW", "WNWNN", "NWWNN", "NNNWW", "WNNWN", "NWNWN");
$cbresult = '';
if (is_numeric($codigo)&(!(strlen($codigo)&1))) {
for($i = 0; $i < strlen($codigo); $i = $i+2) {
$cbvar1 = $cbnumeros[$codigo[$i]];
$cbvar2 = $cbnumeros[$codigo[$i+1]];
for ($j = 0; $j <= 4; $j++) {
$cbresult .= $cbvar1[$j].$cbvar2[$j];
}
}
return $cbinicio.$cbresult.$cbfinal;
}
else return '';
}
function pintarbarras($mapaI25, $altura, $espmin)
{
$espmin--;
if($espmin < 0) {
$espmin = 0;
}
if($altura < 5) {
$altura = 5;
}
$largura = (strlen($mapaI25)/5*((($espmin+1)*3)+(($espmin+3)*2)))+20;
$im = imagecreate($largura, $altura);
imagecolorallocate($im, 255, 255, 255);
$spH = 10;
for($k = 0; $k < strlen($mapaI25); $k++) {
if (!($k&1)) {
$corbarra = ImageColorAllocate($im,0,0,0);
}
else {
$corbarra = ImageColorAllocate($im,255,255,255);
}
if ($mapaI25[$k] == 'N') {
ImageFilledRectangle($im, $spH, $altura-3, $spH+$espmin, 2, $corbarra);
$spH = $spH+$espmin+1;
}
else {
ImageFilledRectangle($im, $spH, $altura-3, $spH+$espmin+2, 2, $corbarra);
$spH = $spH+$espmin+3;
}
}
imagepng($im);
imagedestroy($im);
}
// Recupera o código e cria a imagem jpeg
$codigo = $_GET['codigo'];
pintarbarras(codificar($codigo), 50, 1);
header("Content-Type: image/png");