我正在使用https://github.com/dm77/barcodescanner扫描二维码。但它根本不扫描二维码(handleResult永远不会被调用)。当我将相机聚焦在二维码上时,它不扫描代码。
这是我的活动。
package education.qrexample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import com.google.zxing.Result;
import me.dm7.barcodescanner.zxing.ZXingScannerView;
public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler{
private ZXingScannerView mScannerView;
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
mScannerView = new ZXingScannerView(this); // Programmatically initialize the scanner view
setContentView(mScannerView);
mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.startCamera(); // Start camera on resume// Set the scanner view as the content view
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onPause() …Run Code Online (Sandbox Code Playgroud) 通常的URL 缩短技术使用通常 URL 字符集中的少数字符,因为不需要更多字符。典型的短 URL是http://domain/code,其中代码是整数。假设我可以使用任何基数(base10、base16、base36、base62 等)来表示数字。
QR Code有多种编码模式,我们可以优化QR Code(最小版本以获得最低密度),因此我们可以测试成对的baseX-modeY...
最好的基本模式对是什么?
两种模式适合“URL 缩短配置文件”,
我的选择是“大写 base36”和字母数字(也编码“/”、“:”等),但没有看到任何证明它始终(对于任何 URL 长度)是最好的。关于这种优化有一些好的指南或数学演示吗?
还有另一种变体,“编码模式可以根据需要在 QR 符号内混合”(维基百科)......所以,我们也可以使用
HTTP://DOMAIN/使用字母数字+change_mode+数字编码(每3位10位)对于长URL(长整数),当然,这是最好的解决方案(!),因为使用所有字符集,没有松散......是吗?
问题是这种优化(混合模式)在通常的 QRCode 图像生成器中是无法访问的......它是否可行?有一台发电机使用正确吗?
(实际的)问题是关于base和mode的最佳组合,因此我们可以将其表达为(例如Javascript)函数,
function bestBaseMode(domain,number_range) {
var dom_len = domain.length;
var urlBase_len = dom_len+8; // 8 …Run Code Online (Sandbox Code Playgroud) 当我安装应用程序时。使用 ZXingScannerView 库我得到了意外的白屏而不是相机预览。
相机的 PS 运行时权限保证在进入 QR 屏幕之前从注册屏幕打开相机。另外,我尝试从设置中打开它。这些都不起作用。
三星 Galaxy S6 操作系统:Android 6.0.1
我想从实时摄像头和图像中扫描二维码和条形码。我之前使用ZBar库来扫码。它不扫描特定类型的二维码和条形码。此外,苹果的 AVFoundation 框架在从实时摄像头扫描代码时似乎更加快速和准确。
所以我不想使用ZBar。为了扫描从图库中选取的图像中的代码,我使用 CIDetector。但 CIDetector 似乎无法扫描图像中的条形码。我已经在流 CIDetector 的整个堆栈中搜索了其他条形码类型, 本机从 UIImage 扫描条形码(即不使用 ZBar)
但我还没有找到使用 CIDetector 扫描从图库中挑选的图像条形码的方法。是否可以使用 CIDetector 从 UIImages 扫描条形码?
不建议其他第三方库。我想使用苹果的默认框架来完成这项工作。
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
CIImage *img = [[CIImage alloc]initWithImage:image];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy:CIDetectorAccuracyHigh}];
if (detector)
{
NSArray* featuresR = [detector featuresInImage:img];
NSString* decodeR;
for (CIQRCodeFeature* featureR in featuresR)
{
NSLog(@"decode %@ ",featureR.messageString);
decodeR = featureR.messageString;
[self showAlertWithTitle:@"Success" withMessage:decodeR];
return;
}
[self showAlertWithTitle:@"Error" withMessage:@"Invalid Image"]; …Run Code Online (Sandbox Code Playgroud) 我想用 javascript 创建一个自定义的二维码,中间包含一个徽标。
我已经在 github 上找到了这个项目: https: //github.com/kaarposoft/qrlogo 但不幸的是这个脚本创建了 1000 个二维码,因此徽标的位置总是不同,除此之外这个项目并不容易处理。(没有文档等)。我以这样一种方式重写,只生成一个二维码,不超过一个,而且它使用 img 标签而不是等待上传。然而,这并不是最佳选择,因为徽标总是随机出现在二维码上,而且它是一个项目而不是一个库。
所以我想知道是否有人知道一个库或编写了一些程序来使用 javascript 从 img 标签和字符串生成二维码。
许多问候和感谢。
我将 jsQR ( https://www.npmjs.com/package/jsqr ) 与我的 Angular 应用程序一起使用来解码 QR。一般来说,我将代码从 jsQR 复制到我的应用程序中,它立即可以运行。但是,jsQR 仅当我在网络摄像头区域中持有二维码时才读取,当将代码移开时,不会捕获之前的结果。所以我想如果成功的话捕获第一个二维码并将其绑定到表单中以提交结果。我怎样才能正确地做到这一点?
到目前为止,这是我的代码:
ngOnInit() {
this.getQR();
}
getQR() {
const video = document.createElement('video');
const canvasElement: any = document.getElementById('canvas');
const canvas = canvasElement.getContext('2d');
const outputContainer = document.getElementById('output');
const outputMessage = document.getElementById('outputMessage');
const outputData = document.getElementById('outputData');
function drawLine(begin, end, color) {
canvas.beginPath();
canvas.moveTo(begin.x, begin.y);
canvas.lineTo(end.x, end.y);
canvas.lineWidth = 4;
canvas.strokeStyle = color;
canvas.stroke();
}
// Use facingMode: environment to attemt to get the front camera on phones
navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个关于网络扫描二维码的小项目。当我在桌面上使用它时,网络摄像头工作正常并且可以扫描二维码,但当我在智能手机上使用它时遇到问题。后置和前置摄像头均不适用于智能手机。
我的代码:
<script>
let scanner = new Instascan.Scanner(
{
video: document.getElementById('preview')
}
);
scanner.addListener('scan', function(content) {
alert('The Content is : ' + content);
window.open(content, "_blank");
});
Instascan.Camera.getCameras().then(cameras => {
if (cameras.length > 0) {
scanner.start(cameras[0]);
} else {
console.error("There is no camera available");
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
所以,我什至尝试更改index为1但它仍然不起作用:
if (cameras.length > 0) {
scanner.start(cameras[1]);
Run Code Online (Sandbox Code Playgroud)
如何启用智能手机上的相机?非常感谢您的帮助。
是否可以确保(深层)链接不会打开新的浏览器窗口?使用案例包括 QR 码或 NFC 标签,其中包含某种标识符以及 URL/深层链接 URL。例如 www.example.com/mypwa/game=ID
在这种情况下,想法是链接到 ID 的资产将在应用程序中可用。
当您想要重复执行此操作时,目前 Android 上的 Chrome 和 iOS 上的 Safari(作为标准浏览器)都会为每个点击的 NFC 标签打开一个新选项卡,这会让用户感到困惑。
PWA 是否可以检查它是否已在另一个选项卡中运行,如果是,则接管 URL 参数 (ID) 并使用它?
我想在Access2010中实现QR码,我找到了https://github.com/yas78/QRCodeLibVBA。从 Access 引用 XLAM 不起作用,我不想将所有模块直接插入 Access,因为这会使项目变得混乱。因此,我决定使用古老的 VB6 创建一个 OCX 文件,因为这似乎是将所有位封装到一个简单对象中的最简单方法。
最后,我制作了一个OCX,它有几个关键属性:这是DataString要显示的字符串、、、、、ByteModeCharsetName还有方法ErrorCorrectionLevel、事件和ForeRGBBackRGBRefreshClsOnClickOnDblClick
它在 VB6 应用程序 + Excel 工作表 + Excel 表单中工作正常,但在 Access 表单、报告等中表现得很奇怪。
OnClick属性表的“事件”选项卡中不显示)这是我的问题:
ForeRGB选项卡格式(如通常的文本框等)?ControlSource可以直接绑定到记录集而无需使用 VBA 的属性(在“数据”选项卡上)?这样,我希望我也可以在连续表单上使用该控件。事实上,这是最重要的问题。我认为我已经非常接近我的目标了,但我现在陷入了困境。我知道 VB6 已过时,但在阅读了为 ms access 2010 创建自定义控件后,VB6 似乎是一个简单的选择。编写 OCX 有其他选择吗?
编辑:最终工作控制可在此处 https://github.com/Combinatix/QRCodeAX
基本上,我尝试在 React 上下文中使用https://github.com/cozmo/jsQR 。但是,canvas 仅在组件安装时捕获视频流。如何使用反应画布连续流式传输视频?
import React, { Component } from "react";
import jsQR from "jsqr";
class WebcamStream extends Component {
constructor(props) {
super(props);
this.videoTag = React.createRef();
this.canvas = React.createRef();
this.tick = this.tick.bind(this);
}
componentDidMount() {
// getting access to webcam
navigator.mediaDevices
.getUserMedia({ video: { facingMode: "environment" } })
.then(stream => {
const video = this.videoTag.current;
video.srcObject = stream;
video.setAttribute("playsinline", true);
video.play();
requestAnimationFrame(this.tick);
});
}
componentDidUpdate() {}
drawLine(begin, end, color) {
const canvasElement = this.canvas.current;
const canvas = …Run Code Online (Sandbox Code Playgroud) qr-code ×10
javascript ×3
android ×2
activex ×1
angular ×1
browser ×1
camera ×1
canvas ×1
cidetector ×1
html ×1
ios ×1
ms-access ×1
nfc ×1
objective-c ×1
optimization ×1
reactjs ×1
url ×1
vb6 ×1
vba ×1
zxing ×1