1

我正在使用这个条形码生成器类来生成条形码。一切正常,但无法保存输出。当我检查元素时,它告诉我这个

在此处输入图像描述

基本上,没有图像。

这是代码

 <?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);

?>

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

4

3 回答 3

1

使用这个:$drawing->setFilename('directory/filename.png');它工作得很好。

$drawing->setFilename('directory/filename.png');<br>
$drawing->finish($filetypes[$_GET['filetype']]);
于 2014-11-19T07:16:16.923 回答
1

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

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

于 2014-01-23T13:33:28.870 回答
0

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

于 2014-01-23T13:54:57.030 回答