PHP函数不使用TrueType字体显示条形码


PHP function not displaying barcode using TrueType fonts

你好,我正在使用我在互联网上发现的一个函数来显示使用TrueType字体的条形码,以下是代码:

//For displaying barcodes
//Arguments are:
//  code    Number you want outputted as a barcode
//You can use this script in two ways:
//  From a webpage/PHP script   <img src='/images/barcode.php?code=12345'/>
//  Directly in your web browser    http://www.example.com/images/barcode.php?code=12345
//Outputs the code as a barcode, surrounded by an asterisk (as per standard)
//Will only output numbers, text will appear as gaps
//Image width is dynamic, depending on how much data there is

header("Content-type: image/png");
$file = "barcode.png"; // path to base png image
$im = imagecreatefrompng($file); // open the blank image
$string = "123123123"; // get the code from URL
imagealphablending($im, true); // set alpha blending on
imagesavealpha($im, true); // save alphablending setting (important)
$black = imagecolorallocate($im, 0, 0, 0); // colour of barcode
$font_height=40; // barcode font size. anything smaller and it will appear jumbled and will not be able to be read by scanners
$newwidth=((strlen($string)*20)+41); // allocate width of barcode. each character is 20px across, plus add in the asterisk's
$thumb = imagecreatetruecolor($newwidth, 40); // generate a new image with correct dimensions
imagecopyresized($thumb, $im, 0, 0, 0, 0, $newwidth, 40, 10, 10); // copy image to thumb
imagettftext($thumb, $font_height, 0, 1, 40, $black, 'B2FI25HRc.ttf', '*'.$string.'*'); // add text to image
//show the image
imagepng($thumb);
imagedestroy($thumb);

我找不到函数不显示图像的错误。什么好主意吗?字体与php函数在同一目录中,我尝试了相对和绝对路径到字体,没有结果。任何建议吗?

非常感谢

您需要检查错误消息。对于调试,注释掉标题行,并在顶部添加这些行,以显示所有错误:

ini_set('display_errors',true);
error_reporting(E_ALL);

在很多情况下,错误信息会非常清楚地告诉你哪里出错了。