dlow128 Posted August 1, 2009 Share Posted August 1, 2009 This script uses mysql to generate a barcode and duplicates the image 10 times one underneath the other to produce what looks like a continious barcode. My problem is i need to separate the 10 images down the page to allow for a text area. Any ideas? I appreciate any input, many thanks <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("test") or die(mysql_error()); $query = mysql_fetch_row(mysql_query("select codes from list order by rand() limit 1")); $barcodeheight=40; $barcodethinwidth=2; $barcodethickwidth=$barcodethinwidth*3; $codingmap = Array( "0"=> "000110100", "1"=> "100100001", "2"=> "001100001", "3"=> "101100000", "4"=> "000110001", "5"=> "100110000", "6"=> "001110000", "7"=> "000100101", "8"=> "100100100", "9"=> "001100100", "A"=> "100001001", "B"=> "001001001", "C"=> "101001000", "D"=> "000011001", "E"=> "100011000", "F"=> "001011000", "G"=> "000001101", "H"=> "100001100", "I"=> "001001100", "J"=> "000011100", "K"=> "100000011", "L"=> "001000011", "M"=> "101000010", "N"=> "000010011", "O"=> "100010010", "P"=> "001010010", "Q"=> "000000111", "R"=> "100000110", "S"=> "001000110", "T"=> "000010110", "U"=> "110000001", "V"=> "011000001", "W"=> "111000000", "X"=> "010010001", "Y"=> "110010000", "Z"=> "011010000", " "=> "011000100", "$"=> "010101000", "%"=> "000101010", "*"=> "010010100", "+"=> "010001010", "-"=> "010000101", "."=> "110000100", "/"=> "010100010"); $text = strtoupper($query[0]); $textlen = strlen($text); $barcodewidth = ($textlen)*(7*$barcodethinwidth + 3*$barcodethickwidth)-$barcodethinwidth; $im = ImageCreate($barcodewidth,$barcodeheight); $black = ImageColorAllocate($im,0,0,0); $white = ImageColorAllocate($im,255,255,255); imagefill($im,0,0,$white); $xpos=0; for ($idx=0;$idx<$textlen;$idx++) { $char = substr($text,$idx,1); // make unknown chars a '-'; if (!isset($codingmap[$char])) $char = "-"; for ($baridx=0;$baridx<=8;$baridx++) { $elementwidth = (substr($codingmap[$char],$baridx,1)) ? $barcodethickwidth : $barcodethinwidth; if (($baridx+1)%2) imagefilledrectangle($im,$xpos,0,$xpos + $elementwidth-1,$barcodeheight,$black); $xpos+=$elementwidth; } $xpos+=$elementwidth; } // Duplication $barcodesRequired = 10; $im2 = imageCreate($barcodewidth,$barcodeheight*$barcodesRequired); for($x = 0; $x< $barcodesRequired; $x ++){ imagecopy($im2,$im,0,$barcodeheight*$x,0,0,$barcodewidth,$barcodeheight); } Header( "Content-type: image/gif"); ImageGif($im2); ImageDestroy($im); ImageDestroy($im2); ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.