Android项目实战(五十四):zxing 生成二维码图片去除白色内边距的解决方案
目录:zxing->encoding->EncodingHandler类 中修改 createQRCode方法
private static final int BLACK = 0xff000000; private static final int WHITE = 0xffffffff; public static Bitmap createQRCode(String str,int widthAndHeight) throws WriterException { String contentsToEncode = str; if (contentsToEncode == null) { return null; } Map<EncodeHintType, Object> hints = new EnumMap<>(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, BarcodeFormat.QR_CODE , widthAndHeight, widthAndHeight, hints); } catch (Exception e) { // Unsupported format e.printStackTrace(); 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) ? BLACK : Color.WHITE; } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, width, 0, 0, width, height); return bitmap; }
作者:听着music睡
出处:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。