Dysan Posted January 9, 2008 Share Posted January 9, 2008 The following code, creates a barcode containing a value of "111111". Upon changing the string to "101010", the barcode resizes outside outside the boundarys of the surround square. How do I keep the bar code inside the square, regardless of it's containing value? The value will change, but will always be 6 characters in length! Many Thanks, Dysan <?php $rectangle_width = 2; $rectangle_height = 100; $image = imagecreatetruecolor(300, 188); $white = imagecolorallocate($image, 255, 255, 255); $black = imagecolorallocate($image, 0, 0, 0); imagefill($image, 0, 0, $white); imagerectangle($image, 0, 0, 298, 186, $black); $find = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*'); $replace = array('1010001110111010', '1110100010101110', '1011100010101110', '1110111000101010', '1010001110101110', '1110100011101010', '1011100011101010', '1010001011101110', '1110100010111010', '1011100010111010', '1000101110111010'); $string = '*111111*'; $textstring = str_replace($find, $replace, $string); $j = 11; $sarray = str_split($textstring, 1); for($i = 0; $i < count($sarray); $i++) { if($sarray[$i] == '0') { imagefilledrectangle($image, $rectangle_width * $j, 150, ($rectangle_width * $j) + $rectangle_width, $rectangle_height, $white); $j++; } elseif($sarray[$i] == '1') { imagefilledrectangle($image, $rectangle_width * $j, 150, ($rectangle_width * $j) + $rectangle_width, $rectangle_height, $black); $j++; } } imagettftext($image, 10, 0, 120, 170, $black, "Verdana", $string); header("Content-type: image/jpeg"); imagejpeg($image); imagedestroy($image); ?> Quote Link to comment Share on other sites More sharing options...
neylitalo Posted January 10, 2008 Share Posted January 10, 2008 Use a monospace font and adjust your image size accordingly. With monospace fonts, all characters are the same width. For example: 101010101010101010 111111111111111111 As opposed to: 101010101010101010 111111111111111111 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.