Source for file ean13.php
Documentation is available at ean13.php
/* vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2001 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Author: Didier FOURNOUT <didier.fournout@nyc.fr> |
// +----------------------------------------------------------------------+
// $Id: ean13.php,v 1.1 2003/01/21 11:46:20 jason Exp $
require_once "Image/Barcode.php";
* Class to create a EAN 13 barcode
* @author Didier FOURNOUT <didier.fournout@nyc.fr>
class Image_Barcode_ean13 extends Image_Barcode
var $_barcodeheight = 50;
* Font use to display text
var $_font = 2; // gd internal small font
var $_number_set = array (
'A' => array (0 ,0 ,0 ,1 ,1 ,0 ,1 ),
'B' => array (0 ,1 ,0 ,0 ,1 ,1 ,1 ),
'C' => array (1 ,1 ,1 ,0 ,0 ,1 ,0 )
'A' => array (0 ,0 ,1 ,1 ,0 ,0 ,1 ),
'B' => array (0 ,1 ,1 ,0 ,0 ,1 ,1 ),
'C' => array (1 ,1 ,0 ,0 ,1 ,1 ,0 )
'A' => array (0 ,0 ,1 ,0 ,0 ,1 ,1 ),
'B' => array (0 ,0 ,1 ,1 ,0 ,1 ,1 ),
'C' => array (1 ,1 ,0 ,1 ,1 ,0 ,0 )
'A' => array (0 ,1 ,1 ,1 ,1 ,0 ,1 ),
'B' => array (0 ,1 ,0 ,0 ,0 ,0 ,1 ),
'C' => array (1 ,0 ,0 ,0 ,0 ,1 ,0 )
'A' => array (0 ,1 ,0 ,0 ,0 ,1 ,1 ),
'B' => array (0 ,0 ,1 ,1 ,1 ,0 ,1 ),
'C' => array (1 ,0 ,1 ,1 ,1 ,0 ,0 )
'A' => array (0 ,1 ,1 ,0 ,0 ,0 ,1 ),
'B' => array (0 ,1 ,1 ,1 ,0 ,0 ,1 ),
'C' => array (1 ,0 ,0 ,1 ,1 ,1 ,0 )
'A' => array (0 ,1 ,0 ,1 ,1 ,1 ,1 ),
'B' => array (0 ,0 ,0 ,0 ,1 ,0 ,1 ),
'C' => array (1 ,0 ,1 ,0 ,0 ,0 ,0 )
'A' => array (0 ,1 ,1 ,1 ,0 ,1 ,1 ),
'B' => array (0 ,0 ,1 ,0 ,0 ,0 ,1 ),
'C' => array (1 ,0 ,0 ,0 ,1 ,0 ,0 )
'A' => array (0 ,1 ,1 ,0 ,1 ,1 ,1 ),
'B' => array (0 ,0 ,0 ,1 ,0 ,0 ,1 ),
'C' => array (1 ,0 ,0 ,1 ,0 ,0 ,0 )
'A' => array (0 ,0 ,0 ,1 ,0 ,1 ,1 ),
'B' => array (0 ,0 ,1 ,0 ,1 ,1 ,1 ),
'C' => array (1 ,1 ,1 ,0 ,1 ,0 ,0 )
var $_number_set_left_coding = array (
'0' => array ('A','A','A','A','A','A'),
'1' => array ('A','A','B','A','B','B'),
'2' => array ('A','A','B','B','A','B'),
'3' => array ('A','A','B','B','B','A'),
'4' => array ('A','B','A','A','B','B'),
'5' => array ('A','B','B','A','A','B'),
'6' => array ('A','B','B','B','A','A'),
'7' => array ('A','B','A','B','A','B'),
'8' => array ('A','B','A','B','B','A'),
'9' => array ('A','B','B','A','B','A')
function draw ($text, $imgtype = 'png')
//TODO: Check if $text is number and len=13
// Calculate the barcode width
$barcodewidth = (strlen($text)) * (7 * $this->_barwidth)
$barcodelongheight = (int) (imagefontheight($this->_font)/2 )+ $this->_barcodeheight;
$img = ImageCreate ($barcodewidth, $barcodelongheight+ imagefontheight($this->_font)+1 );
// Alocate the black and white colors
$black = ImageColorAllocate ($img, 0 , 0 , 0 );
$white = ImageColorAllocate ($img, 255 , 255 , 255 );
// Fill image with white color
// get the first digit which is the key for creating the first 6 bars
imagestring($img, $this->_font, $xpos, $this->_barcodeheight, $key, $black);
// Draws the left guard pattern (bar-space-bar)
$xpos += $this->_barwidth;
$xpos += $this->_barwidth;
$xpos += $this->_barwidth;
// Draw left $text contents
$set_array= $this->_number_set_left_coding[$key];
for ($idx = 1; $idx < 7; $idx ++ ) {
imagestring ($img, $this->_font, $xpos+1 , $this->_barcodeheight, $value, $black);
foreach ($this->_number_set[$value][$set_array[$idx-1 ]] as $bar) {
$xpos += $this->_barwidth;
// Draws the center pattern (space-bar-space-bar-space)
$xpos += $this->_barwidth;
$xpos += $this->_barwidth;
$xpos += $this->_barwidth;
$xpos += $this->_barwidth;
$xpos += $this->_barwidth;
// Draw right $text contents
for ($idx = 7; $idx < 13; $idx ++ ) {
imagestring ($img, $this->_font, $xpos+1 , $this->_barcodeheight, $value, $black);
foreach ($this->_number_set[$value]['C'] as $bar) {
$xpos += $this->_barwidth;
// Draws the right guard pattern (bar-space-bar)
$xpos += $this->_barwidth;
$xpos += $this->_barwidth;
$xpos += $this->_barwidth;
header("Content-type: image/gif");
header("Content-type: image/jpg");
header("Content-type: image/png");
Documentation generated on Mon, 11 Mar 2019 14:21:07 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|