function Upcabarcode ($code) { $LW = 2; $hi = 100; $Lencode = Array (' 0001101 ', ' 0011001 ', ' 0010011 ', ' 0111101 ', ' 0100011 ', ' 0110001 ', ' 0101111 ', ' 0111011 ', ' 0110111 ', ' 0001011 '); $Rencode = Array (' 1110010 ', ' 1100110 ', ' 1101100 ', ' 1000010 ', ' 1011100 ', ' 1001110 ', ' 1010000 ', ' 1000100 ', ' 1001000 ', ' 1110100 '); $ends = ' 101 '; $center = ' 01010 '; /* upc-a must be one digits, we compute the checksum. */ if (strlen ($code)! = one) {die ("upc-a must is one digits."); /* Compute the EAN-13 Checksum digit */ $ncode = ' 0 '. $code; $even = 0; $odd = 0; for ($x =0; $x <12; $x + +) { if ($x% 2) {$odd + = $ncode [$x];} else {$even + = $ncode [$x];} } $code. = (($odd * 3 + $even)% 10))% 10; /* Create the bar encoding using a binary string */ $bars = $ends; $bars. = $Lencode [$code [0]]; for ($x =1; $x <6; $x + +) { $bars. = $Lencode [$code [$x]]; } $bars. = $center; for ($x =6; $x <12; $x + +) { $bars. = $Rencode [$code [$x]]; } $bars. = $ends; /* Generate the Barcode Image */ $img = Imagecreate ($lw *95+30, $hi +30); $FG = imagecolorallocate ($img, 0, 0, 0); $BG = Imagecolorallocate ($img, 255, 255, 255); Imagefilledrectangle ($img, 0, 0, $lw *95+30, $hi +30, $BG); $shift = 10; for ($x =0; $x if (($x <10) | | ($x >=45 && $x <50) | | ($x >=85)) {$sh = 10;} else {$sh = 0;} if ($bars [$x] = = ' 1 ') {$color = $FG;} else {$color = $BG;} Imagefilledrectangle ($img, ($x * $lw) +15,5, ($x + 1) * $LW +14, $hi +5+ $sh, $color); } /* Add the Human readable Label */ Imagestring ($img, 4,5, $hi -5, $code [0], $FG); for ($x =0; $x <5; $x + +) { Imagestring ($img, 5, $LW * (13+ $x *6) +15, $hi +5, $code [$x +1], $FG); Imagestring ($img, 5, $LW * (53+ $x *6) +15, $hi +5, $code [$x +6], $FG); } Imagestring ($img, 4, $LW *95+17, $hi -5, $code [one], $FG); /* Output the Header and Content. */ Header ("Content-type:image/png"); Imagepng ($IMG); } Upcabarcode (' 12345678901 '); ?> |