ZXing marjları vardır kullanarak QR kodunu Oluşturulan (alana uygun değil). Ekranın genişliğine uyması gereken QR kodu oluşturmak istiyorum (belki küçük bir dolgu). Ben QR kodu genişliği boyutu olarak ekranın genişliğini ayarlarsanızAndroid: Ben QR kodu üretmek için kütüphane ZXing Uygulamamda kullanıyorum
Ben küçük QR kodu olsun. Ekran görüntüsüne bakın (320x240 çözünürlük). QR kodunu siyah alana sığdırmak istiyorum. QR kodu neden kırmızı kadar küçük?
nasıl siyah alanda onu germek mi?
Kodum:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
Bitmap bm = encodeAsBitmap(mGeneratedURL, BarcodeFormat.QR_CODE, width, width);
qrcodeImage.setImageBitmap(bm);
Yaratma QR kodu:
private Bitmap encodeAsBitmap(String contents, BarcodeFormat format, int img_width, int img_height) throws WriterException {
String contentsToEncode = contents;
if (contentsToEncode == null) {
return null;
}
Map<EncodeHintType, Object> hints = null;
String encoding = guessAppropriateEncoding(contentsToEncode);
if (encoding != null) {
hints = new EnumMap<EncodeHintType, Object>(EncodeHintType.class);
//hints.put(EncodeHintType.CHARACTER_SET, encoding);
hints.put(EncodeHintType.MARGIN, 0); /* default = 4 */
}
MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix result;
try {
result = writer.encode(contentsToEncode, format, img_width, img_height, hints);
} catch (IllegalArgumentException iae) {
// Unsupported format
return null;
}
int width = result.getWidth();
int height = result.getHeight();
int[] pixels = new int[width * height];
for (int y = 0; y < height; y++) {
int offset = y * width;
for (int x = 0; x < width; x++) {
pixels[offset + x] = result.get(x, y) ? RED : Color.BLACK;
}
}
Bitmap bitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return bitmap;
}
Sadece bu marj var nedeni unutmayın. Tarama sırasında mümkün olan en iyi sonuçları sağlamak için kenar boşluğu alanı (sessiz bölge olarak bilinir) tasarıma yerleştirilir. Sessiz alanın azaltılması veya kaldırılması, bazı tarayıcıların kodunuzu düşük ışık gibi alt-optimal koşullarda hızlı ve doğru bir şekilde taramasını zorlaştırabilir, ancak çoğu durumda bir fark yaratmayacaktır. – BrentM