此问题参考了API文档链接http://www.blackberry.com/developers/docs/7.0.0api/net/rim/device/api/barcodelib/BarcodeBitmap.html
他们指定旧方法
public static Bitmap createBitmap(ByteMatrix byteMatrix,
int maxBitmapSizeInPixels)
已弃用。
但是通过使用新方法,
public static Bitmap createBitmap(ByteMatrix byteMatrix)
他们没有指定一种方法来指定Multiformatwriter中QR码的纠错级别。通过各种成员函数,我无法找到方法。 有人试过吗?
感谢您的帮助。
答案 0 :(得分:2)
这是我的代码,我已经通过手机查看,根据我的手机正确设置了纠错级别。
Hashtable hints = new Hashtable();
switch (comboBox1.Text)
{
case "L":
hints.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
break;
case "Q":
hints.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.Q);
break;
case "H":
hints.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
break;
default:
hints.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
break;
}
MultiFormatWriter mw = new MultiFormatWriter();
ByteMatrix bm = mw.encode(data, BarcodeFormat.QR_CODE, size, size, hints);
Bitmap img = bm.ToBitmap();
pictureBox1.Image = img;
答案 1 :(得分:1)
只是查看了文档。
它表示将createBitmap(ByteMatrix byteMatrix)
与MultiFormatWriter
结合使用。这有方法encode(String contents, BarcodeFormat format, int width, int height, Hashtable hints)
,您可以在其中指定宽度,高度和错误级别。
指定置于带有值EncodeHintType.ERROR_CORRECTION
的提示哈希表键new Integer(level)
的错误级别。
不幸的是,我没有找到here描述的这些值的任何常量。但也许你可以在削减资源中找到它。
答案 2 :(得分:1)
编码时,您可以传递提示
Map<EncodeHintType, Object> hints = new Hastable<EncodeHintType, Object>();
将错误更正设置添加到提示中(例如,添加到级别M)
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
ZXing默认使用错误修正等级L(最低,即使在最多7%的伤害后QR码仍然可读)