【问题标题】:Phpbarcode - a barcode generator script can't save imagePhpbarcode - 条码生成器脚本无法保存图像
【发布时间】:2014-02-14 01:38:04
【问题描述】:

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

基本上没有图片。

这里是代码

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

?>

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

【问题讨论】:

    标签: php image barcode barcode-printing


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我检查了这个,在浏览器中我取消了这个选项,但图像仍然“不是图像”。当我右键单击并“将图像另存为..”时,没有任何反应。
    • 有什么方法可以将一些演示输出放到网络上以便我们使用它?
    • 该屏幕截图是以 chrome 显示的图像文件。当您右键单击单个图像并选择“检查元素”时,Chrome 会添加该样式
    • 啊...所以这个截图是实际的图像文件本身?这有帮助......我刚刚在网上看了你的现场演示。我可以用 Chrome 右键单击​​图像并说“将图像另存为”。这不是你要找的吗?
    • 是的,我可以保存它。是的,它打开了。是的,一切正常。是的,这是 Chrome(版本 32.0.1700.76 m)。
    【解决方案2】:

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

    【讨论】:

    • 我只是想显示图像,如果用户决定他可以保存或不保存,所以我不想强制下载。
    【解决方案3】:

    使用这个:$drawing-&gt;setFilename('directory/filename.png'); 效果很好。

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

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 1970-01-01
      • 2013-03-19
      • 2010-12-14
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      相关资源
      最近更新 更多