我正在使用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);
?>
随下载文件提供的演示按预期工作,我可以保存生成的图像。
答案 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");