Android 使用Zxing 生成中文二维码出现问号解决办法

xiaoxiao2021-02-28  72

 /**      * 将指定的内容生成成二维码      *      * @param content 将要生成二维码的内容      * @return 返回生成好的二维码图片      * @throws WriterException WriterException异常      */     public static Bitmap CreateTwoDCode(String content,int newsize) throws WriterException {         // 生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败         BitMatrix matrix=null;

try {

matrix = new MultiFormatWriter().encode(content,        BarcodeFormat.QR_CODE, newsize, newsize);//这种方法不支持生成中文二维码

matrix = new MultiFormatWriter().encode(new String(content.getBytes("UTF-8"),"ISO-8859-1"),        BarcodeFormat.QR_CODE, newsize, newsize); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); }         int width = matrix.getWidth();         int height = matrix.getHeight();         // 二维矩阵转为一维像素数组,也就是一直横着排了         int[] pixels = new int[width * height];         for (int y = 0; y < height; y++) {             for (int x = 0; x < width; x++) {                 if (matrix.get(x, y)) {                     pixels[y * width + x] = 0xff000000;//黑色                 }else                 {                    pixels[y * width + x] = 0xffffffff;//白色                }             }         }           Bitmap bitmap = Bitmap.createBitmap(width, height,                 Bitmap.Config.ARGB_8888);         // 通过像素数组生成bitmap,具体参考api         bitmap.setPixels(pixels, 0, width, 0, 0, width, height);         return bitmap;

    }

重点是红色部分。

转载请注明原文地址: https://www.6miu.com/read-38374.html

最新回复(0)