Phpbarcode - 条形码生成器脚本无法保存图像

时间:2014-01-23 13:16:46

标签: php image barcode barcode-printing

我正在使用this barcode generator class生成条形码。一切都很好,但输出无法保存。当我检查元素时,它显示了我

enter image description here

基本上,没有图像。

这是代码

 <?php
    require($_SERVER['WROOT'].'/core/init.php');

    if ( !Input::isPost('new-barcode') || Input::post('new-barcode') == '' ) {
        Go::to('products');
    }

    $barcode = Input::post('new-barcode');

    require_once(ROOT.'core/barcode/class/BCGFontFile.php');
    require_once(ROOT.'core/barcode/class/BCGColor.php');
    require_once(ROOT.'core/barcode/class/BCGDrawing.php');
    require_once(ROOT.'core/barcode/class/BCGcode11.barcode.php');

    $colorFront = new BCGColor(0, 0, 0);
    $colorBack = new BCGColor(255, 255, 255);
    $font = new BCGFontFile(ROOT.'core/barcode/font/Arial.ttf', 18);

    $code = new BCGcode11();
    $code->setScale(2);
    $code->setThickness(50);
    $code->setForegroundColor($colorFront);
    $code->setBackgroundColor($colorBack);
    $code->setFont($font);
    $code->parse($barcode);

    $drawing = new BCGDrawing('', $colorBack);
    $drawing->setBarcode($code);
    $drawing->draw('test.png');

    header('Content-Type: image/png');

    $drawing->finish(BCGDrawing::IMG_FORMAT_PNG);

?>

随下载文件提供的演示按预期工作,我可以保存生成的图像。

3 个答案:

答案 0 :(得分:1)

问题是style="-webkit-user-select: none"。这可以防止用户与图像进行交互。否则,一切正常。从这个代码示例中,我不完全确定将CSS样式添加到图像中的是什么......但这是你的问题。

见这里:https://developer.mozilla.org/en-US/docs/Web/CSS/user-select

答案 1 :(得分:1)

使用此:$drawing->setFilename('directory/filename.png');它运作良好。

$drawing->setFilename('directory/filename.png');<br>
$drawing->finish($filetypes[$_GET['filetype']]);

答案 2 :(得分:0)

如果您在用户点击图片链接时尝试强制浏览器下载图片,请尝试添加header("Content-disposition: attachment; filename=barcode.png");