function barcode_ean8_barcode in Barcode 6.2
Same name and namespace in other branches
- 7.2 plugins/ean8.inc \barcode_ean8_barcode()
File
- plugins/
ean8.inc, line 13 - Barcode plugin EAN-8: Short version of EAN-13, 8 characters
Code
function barcode_ean8_barcode($barnumber, $settings) {
$barnumber = barcode_check_digit($barnumber, 7);
$bars = barcode_ean8_encode($barnumber);
if (empty($settings->filename_no_format)) {
header("Content-type: image/" . $settings->format);
}
$scale = $settings->scale;
if ($scale < 1) {
$scale = 2;
}
$total_y = (double) $scale * $settings->height;
if (!$space) {
$space = array(
'top' => 2 * $scale,
'bottom' => 2 * $scale,
'left' => 2 * $scale,
'right' => 2 * $scale,
);
}
/* count total width */
$xpos = 0;
$xpos = $scale * strlen($bars);
/* allocate the image */
$total_x = $xpos + $space['left'] + $space['right'];
$xpos = $space['left'];
$height = floor($total_y - $scale * 10);
$height2 = floor($total_y - $space['bottom']);
$im = @imagecreatetruecolor($total_x, $total_y);
$bg_color = @imagecolorallocate($im, $settings->bgcolor[0], $settings->bgcolor[1], $settings->bgcolor[2]);
@imagefilledrectangle($im, 0, 0, $total_x, $total_y, $bg_color);
$bar_color = @imagecolorallocate($im, $settings->color[0], $settings->color[1], $settings->color[2]);
for ($i = 0; $i < strlen($bars); $i++) {
$h = $height;
$val = strtoupper($bars[$i]);
if (preg_match("/[a-z]/i", $val)) {
$val = ord($val) - 65;
$h = $height2;
}
if ($val == 1) {
@imagefilledrectangle($im, $xpos, $space['top'], $xpos + $scale - 1, $h, $bar_color);
}
$xpos += $scale;
}
$str = substr($barnumber, 0, 4);
$x = $space['left'] + $scale * strlen($barnumber);
@imagettftext($im, $scale * 6, 0, $x, $height2, $bar_color, $settings->font, $str);
$str = substr($barnumber, 4, 4);
$x = $space['left'] + $scale * strlen($bars) / 1.65;
@imagettftext($im, $scale * 6, 0, $x, $height2, $bar_color, $settings->font, $str);
if ($settings->format == "png") {
if (!empty($settings->filename_no_format)) {
@imagepng($im, $settings->filename_no_format . "." . $settings->format);
}
else {
@imagepng($im);
}
}
if ($settings->format == "gif") {
if (!empty($settings->filename_no_format)) {
@imagegif($im, $settings->filename_no_format . "." . $settings->format);
}
else {
@imagegif($im);
}
}
if ($settings->format == "jpg" || $settings->format == "jpeg") {
if (!empty($settings->filename_no_format)) {
@imagejpeg($im, $settings->filename_no_format . "." . $settings->format);
}
else {
@imagejpeg($im);
}
}
@imagedestroy($im);
}