在阅读维基百科关于条形码的文章后,我了解到有大量的2D和线性条形码.我熟悉的一种格式是QR码.
线性和二维条码的最大存储容量是多少?
我想在我的应用程序中实现QR Code/Barcode阅读器.我想知道什么是最轻量级的解决方案(无视zxing的意图集成商).
我正在使用C#库来读取QRCodes.我发现的很多样本都基于zxing的旧版本,其中RGBLuminanceSource构造函数仍然采用位图.在最新版本中,RGBLuminanceSource只接受byte [].我试图将位图转换为byte [],但解码结果始终为null.
这是我用于转换的代码:
private byte[] GetRGBValues(Bitmap bmp)
{
// Lock the bitmap's bits.
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height);
System.Drawing.Imaging.BitmapData bmpData = bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly, bmp.PixelFormat);
// Get the address of the first line.
IntPtr ptr = bmpData.Scan0;
// Declare an array to hold the bytes of the bitmap.
int bytes = bmpData.Stride * bmp.Height;
byte[] rgbValues = new byte[bytes];
// Copy the RGB values into the array.
System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);
bmp.UnlockBits(bmpData);
return rgbValues;
}
Run Code Online (Sandbox Code Playgroud)
并用于解码:
Bitmap …Run Code Online (Sandbox Code Playgroud) 我知道有人问过这个问题.但遗憾的是我没有找到答案.
dispatchQueue = dispatch_queue_create("myQueue", NULL);
[captureMetadaOutput setMetadataObjectsDelegate:self queue:dispatchQueue];
// [captureMetadaOutput setMetadataObjectTypes:[NSArray arrayWithObject:AVMetadataObjectTypeQRCode]];
// ??????
captureMetadaOutput.metadataObjectTypes = @[AVMetadataObjectTypeQRCode];
Run Code Online (Sandbox Code Playgroud)
我收到Crashlytics的崩溃信息:
[AVCaptureMetadataOutput setMetadataObjectTypes:] - 找不到支持的类型.使用-availableMetadataObjectTypes.
我有一个包含名称的Android应用程序my.test.app.我想生成一个二维码,其中:
有可能这样做,以便任何Android QR扫描仪可以处理上述操作吗?我找不到一个能够实现两者的问题/答案......谢谢!
编辑 - 到目前为止我做了什么我 将以下内容添加到我的"App to open"清单中:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:exported="true" >
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="my.test.app"/>
</intent-filter>
</activity>
...
</application>
Run Code Online (Sandbox Code Playgroud)
当我生成带有内容的QR码my.test.app://test并扫描它时,QR阅读器应用程序显示正确的内容,但不会打开我的应用程序!
第二次编辑 - 尝试了一些网址
我只是尝试在我的Manifest的intent-filter中设置一些其他URL:
<data android:scheme="http" android:host="play.google.com" android:pathPrefix="/store/apps/details?id=my.test.app"/>
http://play.google.com/store/apps/details?id=my.test.app
2. <data android:scheme="http" android:host="myapp.com" android:pathPrefix="/barcode"/>
http://myapp.com/barcode!但问题是,扫描时未安装应用程序时没有解决方案/目标地址!也许可以通过HTML网站进行重定向,但我不想为此使用HTML服务器!我正在尝试使用react-native-camera@0.4.1(with react-native@0.39.2)来创建QR码扫描程序.我的render()方法的相关要点是:
<Camera
aspect={Camera.constants.Aspect.fill}
onBarCodeRead={(data) => console.log(data)}
barCodeTypes={['qr']}>
</Camera>
Run Code Online (Sandbox Code Playgroud)
没有barCodeTypes道具,一切都按预期工作.但是一旦我包含它,视图就不会呈现,我收到以下错误消息:
*** -[AVCaptureMetadataOutput setMetadataObjectTypes:] Unsupported type found
- use -availableMetadataObjectTypes
Run Code Online (Sandbox Code Playgroud)
我猜我只需要以['qr']其他正确的方式编写我的论点,但我无法在文档中找到任何信息.
我运行一个简单的演示来使用cordova-plugin-qrscanner,它可以扫描qrcode但没有摄像头预览.
相关密码打击:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { AndroidPermissions } from '@ionic-native/android-permissions';
import { QRScanner, QRScannerStatus } from '@ionic-native/qr-scanner';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController,
public androidPermissions: AndroidPermissions,
public qrScanner: QRScanner) {
}
qrscanner() {
// Optionally request the permission early
this.qrScanner.prepare()
.then((status: QRScannerStatus) => {
if (status.authorized) {
// camera permission was granted
alert('authorized');
// start scanning
let scanSub = this.qrScanner.scan().subscribe((text: string) => …Run Code Online (Sandbox Code Playgroud)在 Google Authenticator 应用中,您可以扫描二维码或手动输入颁发者提供的密钥。
在下面的屏幕截图中,您可以看到Google安全设置中2FA的设置,显示了如何按照第二种方法获取TOTP。
我的问题是:这个密钥是如何生成的?
我正在尝试为我的网站使用 Google Authenticator 支持 2FA,我发现了许多有关如何生成 QR 码的参考资料和文档,但没有提到替代方法。
编辑:
更清楚地说,我在 Grails 3 Web 应用程序中使用 Google Authenticator 支持 2FA。我已经通过为每个用户生成一个密钥(Base32字符串)、提供一个二维码供用户扫描以及在登录时验证 TOTP 来实现整个用户流程。我用作依赖项:
org.jboss.aerogear:aerogear-otp-java, aerogear OTP可根据 GA 的 TOTP 方便地验证用户密钥org.grails.plugins:qrcode, qrcode Grails 插件生成二维码我的问题是关于在 Google Authenticator 应用程序中添加新条目的 2 种方法: 1. 扫描二维码(我这边一切正常) 2. 手动输入帐户名称和字母代码(在我的第一个屏幕截图中,代码是在 Google 安全设置中提供)
您可以看到 Android 版 GA 的说明性屏幕截图:
我如何生成并向fzee用户提供这样的代码(从第一个屏幕截图开始,并在第二个屏幕截图中命名为“提供的密钥”)?我确信它是在 QR 码中编码的相同数据字符串的编码,但我不知道是哪个(不仅仅是Base32)。
qr-code one-time-password google-authenticator two-factor-authentication totp
在过去的5年左右的时间里,如果我需要QR码,我已经使用了Google API,昨天该服务停止了大约4个小时。经调查,我发现该服务已被弃用,而使用Google图表的链接代替了?我找不到任何二维码吗?
所以我的问题是,有人知道Google是否维护API来生成QR码吗?如果是这样,在哪里可以找到有关此文件的文档。或者是Google的明确声明,表示他们不支持该声明。
Google API确实非常易于使用,并且到目前为止一直可靠,例如下面的示例。
https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl=stuff
我发现几年前的这篇文章,可悲的是我没有在php中工作。 Google Chart API QR Generator可以替代吗?
我正在创建一个使用 QR 码的 ReactJS 应用程序,我希望能够一次打印包含一批代码的 PDF 文档。我目前正在使用react-qr-svg来生成代码和@react-pdf/renderer来创建文档。问题是我无法在文档上显示这些二维码。
首先,我尝试使用来自 @react-pdf/renderer 的 Image 标签,如下所示:
<Image
src={<QRCode
level="Q"
style={{width: 256, marginBottom: 50 }}
value={'hello world'}
/>}
/>
Run Code Online (Sandbox Code Playgroud)
Whick 当然不起作用,之后我尝试将 SVG 转换为数据缓冲区,但没有结果。
有什么直接的解决方案吗?我应该为此项目使用其他库吗?
qr-code ×10
android ×2
barcode ×2
c# ×1
google-api ×1
google-play ×1
ionic-native ×1
ionic3 ×1
ios ×1
ios8 ×1
ipad ×1
javascript ×1
objective-c ×1
react-native ×1
react-pdf ×1
reactjs ×1
storage ×1
svg ×1
totp ×1
zxing ×1