Open-AudIT https://www.open-audit.org/phpBB3/ |
|
Barcode39 Image not displayed in Linux https://www.open-audit.org/phpBB3/viewtopic.php?f=5&t=3619 |
Page 1 of 1 |
Author: | asha2005 [ Wed Apr 21, 2010 7:58 pm ] |
Post subject: | Barcode39 Image not displayed in Linux |
Dear Friends, I'm newbie to Open-Audit. Iam using barcode.php to generate code39 image. Its working finely with Windows. But I'm using my intranet server using Fedora Core 7 and PHP 5.2.3. Please advise me to fix the problem. test.php ++++++++++ <IMG SRC="barcode.php?barcode=HELLO&quality=75"> <IMG SRC="barcode.php?barcode=123456&width=320&height=200"> barcode.php ++++++++++++++ <?php /*===========================================================================*/ /* PHP Barcode Image Generator v1.0 [9/28/2000] Copyright (C)2000 by Charles J. Scheffold - cs@sid6581.net --- UPDATE 5/10/2005 by C.Scheffold Changed FontHeight to -2 if no text is to be displayed (this eliminates the whitespace at the bottom of the image) --- UPDATE 03/12/2005 by C.Scheffold Added '-' character to translation table --- UPDATE 09/21/2002 by Laurent NAVARRO - ln@altidev.com - http://www.altidev.com Updated to be compatible with register_globals = off and on --- UPDATE 4/6/2001 - Important Note! This script was written with the assumption that "register_globals = On" is defined in your PHP.INI file! It will not work as-is and as described unless this is set. My PHP came with this enabled by default, but apparently many people have turned it off. Either turn it on or modify the startup code to pull the CGI variables in the old fashioned way (from the HTTP* arrays). If you just want to use the functions and pass the variables yourself, well then go on with your bad self. --- This code is hereby released into the public domain. Use it, abuse it, just don't get caught using it for something stupid. The only barcode type currently supported is Code 3 of 9. Don't ask about adding support for others! This is a script I wrote for my own use. I do plan to add more types as time permits but currently I only require Code 3 of 9 for my purposes. Just about every scanner on the market today can read it. PARAMETERS: ----------- $barcode = [required] The barcode you want to generate $type = (default=0) It's 0 for Code 3 of 9 (the only one supported) $width = (default=160) Width of image in pixels. The image MUST be wide enough to handle the length of the given value. The default value will probably be able to display about 6 digits. If you get an error message, make it wider! $height = (default=80) Height of image in pixels $format = (default=jpeg) Can be "jpeg", "png", or "gif" $quality = (default=100) For JPEG only: ranges from 0-100 $text = (default=1) 0 to disable text below barcode, >=1 to enable NOTE: You must have GD-1.8 or higher compiled into PHP in order to use PNG and JPEG. GIF images only work with GD-1.5 and lower. (http://www.boutell.com) ANOTHER NOTE: If you actually intend to print the barcodes and scan them with a scanner, I highly recommend choosing JPEG with a quality of 100. Most browsers can't seem to print a PNG without mangling it beyond recognition. USAGE EXAMPLES FOR ANY PLAIN OLD HTML DOCUMENT: ----------------------------------------------- <IMG SRC="barcode.php?barcode=HELLO&quality=75"> <IMG SRC="barcode.php?barcode=123456&width=320&height=200"> */ /*=============================================================================*/ //----------------------------------------------------------------------------- // Startup code //----------------------------------------------------------------------------- if(isset($_GET["text"])) $text=$_GET["text"]; if(isset($_GET["format"])) $format=$_GET["format"]; if(isset($_GET["quality"])) $quality=$_GET["quality"]; if(isset($_GET["width"])) $width=$_GET["width"]; if(isset($_GET["height"])) $height=$_GET["height"]; if(isset($_GET["type"])) $type=$_GET["type"]; if(isset($_GET["barcode"])) $barcode=$_GET["barcode"]; if (!isset ($text)) $text = 1; if (!isset ($type)) $type = 1; if (empty ($quality)) $quality = 100; if (empty ($width)) $width = 160; if (empty ($height)) $height = 80; if (!empty ($format)) $format = strtoupper ($format); else $format="PNG"; switch ($type) { default: $type = 1; case 1: Barcode39 ($barcode, $width, $height, $quality, $format, $text); break; } //----------------------------------------------------------------------------- // Generate a Code 3 of 9 barcode //----------------------------------------------------------------------------- function Barcode39 ($barcode, $width, $height, $quality, $format, $text) { switch ($format) { default: $format = "JPEG"; case "JPEG": header ("Content-type: image/jpeg"); break; case "PNG": header ("Content-type: image/png"); break; case "GIF": header ("Content-type: image/gif"); break; } $im = ImageCreate ($width, $height) or die ("Cannot Initialize new GD image stream"); $White = ImageColorAllocate ($im, 255, 255, 255); $Black = ImageColorAllocate ($im, 0, 0, 0); //ImageColorTransparent ($im, $White); ImageInterLace ($im, 1); $NarrowRatio = 20; $WideRatio = 55; $QuietRatio = 35; $nChars = (strlen($barcode)+2) * ((6 * $NarrowRatio) + (3 * $WideRatio) + ($QuietRatio)); $Pixels = $width / $nChars; $NarrowBar = (int)(20 * $Pixels); $WideBar = (int)(55 * $Pixels); $QuietBar = (int)(35 * $Pixels); $ActualWidth = (($NarrowBar * 6) + ($WideBar*3) + $QuietBar) * (strlen ($barcode)+2); if (($NarrowBar == 0) || ($NarrowBar == $WideBar) || ($NarrowBar == $QuietBar) || ($WideBar == 0) || ($WideBar == $QuietBar) || ($QuietBar == 0)) { ImageString ($im, 1, 0, 0, "Image is too small!", $Black); OutputImage ($im, $format, $quality); exit; } $CurrentBarX = (int)(($width - $ActualWidth) / 2); $Color = $White; $BarcodeFull = "*".strtoupper ($barcode)."*"; settype ($BarcodeFull, "string"); $FontNum = 3; $FontHeight = ImageFontHeight ($FontNum); $FontWidth = ImageFontWidth ($FontNum); if ($text != 0) { $CenterLoc = (int)(($width-1) / 2) - (int)(($FontWidth * strlen($BarcodeFull)) / 2); ImageString ($im, $FontNum, $CenterLoc, $height-$FontHeight, "$BarcodeFull", $Black); } else { $FontHeight=-2; } for ($i=0; $i<strlen($BarcodeFull); $i++) { $StripeCode = Code39 ($BarcodeFull[$i]); for ($n=0; $n < 9; $n++) { if ($Color == $White) $Color = $Black; else $Color = $White; switch ($StripeCode[$n]) { case '0': ImageFilledRectangle ($im, $CurrentBarX, 0, $CurrentBarX+$NarrowBar, $height-1-$FontHeight-2, $Color); $CurrentBarX += $NarrowBar; break; case '1': ImageFilledRectangle ($im, $CurrentBarX, 0, $CurrentBarX+$WideBar, $height-1-$FontHeight-2, $Color); $CurrentBarX += $WideBar; break; } } $Color = $White; ImageFilledRectangle ($im, $CurrentBarX, 0, $CurrentBarX+$QuietBar, $height-1-$FontHeight-2, $Color); $CurrentBarX += $QuietBar; } OutputImage ($im, $format, $quality); } //----------------------------------------------------------------------------- // Output an image to the browser //----------------------------------------------------------------------------- function OutputImage ($im, $format, $quality) { switch ($format) { case "JPEG": ImageJPEG ($im, "", $quality); break; case "PNG": ImagePNG ($im); break; case "GIF": ImageGIF ($im); break; } } //----------------------------------------------------------------------------- // Returns the Code 3 of 9 value for a given ASCII character //----------------------------------------------------------------------------- function Code39 ($Asc) { switch ($Asc) { case ' ': return "011000100"; case '$': return "010101000"; case '%': return "000101010"; case '*': return "010010100"; // * Start/Stop case '+': return "010001010"; case '|': return "010000101"; case '.': return "110000100"; case '/': return "010100010"; case '-': return "010000101"; case '0': return "000110100"; case '1': return "100100001"; case '2': return "001100001"; case '3': return "101100000"; case '4': return "000110001"; case '5': return "100110000"; case '6': return "001110000"; case '7': return "000100101"; case '8': return "100100100"; case '9': return "001100100"; case 'A': return "100001001"; case 'B': return "001001001"; case 'C': return "101001000"; case 'D': return "000011001"; case 'E': return "100011000"; case 'F': return "001011000"; case 'G': return "000001101"; case 'H': return "100001100"; case 'I': return "001001100"; case 'J': return "000011100"; case 'K': return "100000011"; case 'L': return "001000011"; case 'M': return "101000010"; case 'N': return "000010011"; case 'O': return "100010010"; case 'P': return "001010010"; case 'Q': return "000000111"; case 'R': return "100000110"; case 'S': return "001000110"; case 'T': return "000010110"; case 'U': return "110000001"; case 'V': return "011000001"; case 'W': return "111000000"; case 'X': return "010010001"; case 'Y': return "110010000"; case 'Z': return "011010000"; default: return "011000100"; } } ?> |
Author: | A_Hull [ Thu Apr 22, 2010 11:14 pm ] |
Post subject: | Re: Barcode39 Image not displayed in Linux |
I had a couple of issues with Ubuntu 9.10 make sure the images folder is writable by the web server, or at least the barcode image is writable (barcode.jpg from memory), it gets overwritten each time a barcode is displayed, also check.... [quote] NOTE: You must have GD-1.8 or higher compiled into PHP in order to use PNG and JPEG. GIF images only work with GD-1.5 and lower. |
Page 1 of 1 | All times are UTC + 10 hours |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |