Search in sources :

Example 1 with EncodeHintType

use of com.google.zxing.EncodeHintType in project camel by apache.

the class BarcodeDataFormatTest method testRemoveFromHintMapEncodeHintType.

/**
     * Test of removeFromHintMap method, of class BarcodeDataFormat.
     */
@Test
public final void testRemoveFromHintMapEncodeHintType() {
    EncodeHintType hintType = EncodeHintType.ERROR_CORRECTION;
    BarcodeDataFormat instance = new BarcodeDataFormat();
    instance.removeFromHintMap(hintType);
    assertFalse(instance.getWriterHintMap().containsKey(hintType));
}
Also used : EncodeHintType(com.google.zxing.EncodeHintType) Test(org.junit.Test)

Example 2 with EncodeHintType

use of com.google.zxing.EncodeHintType in project Conversations by siacs.

the class BarcodeProvider method create2dBarcodeBitmap.

public static Bitmap create2dBarcodeBitmap(String input, int size) {
    try {
        final QRCodeWriter barcodeWriter = new QRCodeWriter();
        final Hashtable<EncodeHintType, Object> hints = new Hashtable<>();
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        final BitMatrix result = barcodeWriter.encode(input, BarcodeFormat.QR_CODE, size, size, hints);
        final int width = result.getWidth();
        final int height = result.getHeight();
        final int[] pixels = new int[width * height];
        for (int y = 0; y < height; y++) {
            final int offset = y * width;
            for (int x = 0; x < width; x++) {
                pixels[offset + x] = result.get(x, y) ? Color.BLACK : Color.WHITE;
            }
        }
        final Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
        return bitmap;
    } catch (final Exception e) {
        e.printStackTrace();
        return null;
    }
}
Also used : QRCodeWriter(com.google.zxing.qrcode.QRCodeWriter) Bitmap(android.graphics.Bitmap) EncodeHintType(com.google.zxing.EncodeHintType) Hashtable(java.util.Hashtable) BitMatrix(com.google.zxing.common.BitMatrix) FileNotFoundException(java.io.FileNotFoundException)

Example 3 with EncodeHintType

use of com.google.zxing.EncodeHintType in project cas by apereo.

the class OneTimeTokenQRGeneratorController method generateQRCode.

private static void generateQRCode(final OutputStream stream, final String key) {
    try {
        final Map<EncodeHintType, Object> hintMap = new EnumMap<>(EncodeHintType.class);
        hintMap.put(EncodeHintType.CHARACTER_SET, StandardCharsets.UTF_8.name());
        hintMap.put(EncodeHintType.MARGIN, 2);
        hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
        final QRCodeWriter qrCodeWriter = new QRCodeWriter();
        final BitMatrix byteMatrix = qrCodeWriter.encode(key, BarcodeFormat.QR_CODE, 250, 250, hintMap);
        final int width = byteMatrix.getWidth();
        final BufferedImage image = new BufferedImage(width, width, BufferedImage.TYPE_INT_RGB);
        image.createGraphics();
        final Graphics2D graphics = (Graphics2D) image.getGraphics();
        try {
            graphics.setColor(Color.WHITE);
            graphics.fillRect(0, 0, width, width);
            graphics.setColor(Color.BLACK);
            IntStream.range(0, width).forEach(i -> {
                IntStream.range(0, width).filter(j -> byteMatrix.get(i, j)).forEach(j -> graphics.fillRect(i, j, 1, 1));
            });
        } finally {
            graphics.dispose();
        }
        ImageIO.write(image, "png", stream);
    } catch (final Exception e) {
        throw Throwables.propagate(e);
    }
}
Also used : Color(java.awt.Color) OutputStream(java.io.OutputStream) IntStream(java.util.stream.IntStream) BufferedImage(java.awt.image.BufferedImage) EnumMap(java.util.EnumMap) QRCodeWriter(com.google.zxing.qrcode.QRCodeWriter) HttpServletResponse(javax.servlet.http.HttpServletResponse) Throwables(com.google.common.base.Throwables) ErrorCorrectionLevel(com.google.zxing.qrcode.decoder.ErrorCorrectionLevel) RestController(org.springframework.web.bind.annotation.RestController) StandardCharsets(java.nio.charset.StandardCharsets) HttpServletRequest(javax.servlet.http.HttpServletRequest) Graphics2D(java.awt.Graphics2D) EncodeHintType(com.google.zxing.EncodeHintType) Map(java.util.Map) ImageIO(javax.imageio.ImageIO) GetMapping(org.springframework.web.bind.annotation.GetMapping) BitMatrix(com.google.zxing.common.BitMatrix) BarcodeFormat(com.google.zxing.BarcodeFormat) QRCodeWriter(com.google.zxing.qrcode.QRCodeWriter) EncodeHintType(com.google.zxing.EncodeHintType) BitMatrix(com.google.zxing.common.BitMatrix) EnumMap(java.util.EnumMap) BufferedImage(java.awt.image.BufferedImage) Graphics2D(java.awt.Graphics2D)

Example 4 with EncodeHintType

use of com.google.zxing.EncodeHintType in project android-zxingLibrary by yipianfengye.

the class CodeUtils method createImage.

/**
     * 生成二维码图片
     * @param text
     * @param w
     * @param h
     * @param logo
     * @return
     */
public static Bitmap createImage(String text, int w, int h, Bitmap logo) {
    if (TextUtils.isEmpty(text)) {
        return null;
    }
    try {
        Bitmap scaleLogo = getScaleLogo(logo, w, h);
        int offsetX = w / 2;
        int offsetY = h / 2;
        int scaleWidth = 0;
        int scaleHeight = 0;
        if (scaleLogo != null) {
            scaleWidth = scaleLogo.getWidth();
            scaleHeight = scaleLogo.getHeight();
            offsetX = (w - scaleWidth) / 2;
            offsetY = (h - scaleHeight) / 2;
        }
        Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        //容错级别
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
        //设置空白边距的宽度
        hints.put(EncodeHintType.MARGIN, 0);
        BitMatrix bitMatrix = new QRCodeWriter().encode(text, BarcodeFormat.QR_CODE, w, h, hints);
        int[] pixels = new int[w * h];
        for (int y = 0; y < h; y++) {
            for (int x = 0; x < w; x++) {
                if (x >= offsetX && x < offsetX + scaleWidth && y >= offsetY && y < offsetY + scaleHeight) {
                    int pixel = scaleLogo.getPixel(x - offsetX, y - offsetY);
                    if (pixel == 0) {
                        if (bitMatrix.get(x, y)) {
                            pixel = 0xff000000;
                        } else {
                            pixel = 0xffffffff;
                        }
                    }
                    pixels[y * w + x] = pixel;
                } else {
                    if (bitMatrix.get(x, y)) {
                        pixels[y * w + x] = 0xff000000;
                    } else {
                        pixels[y * w + x] = 0xffffffff;
                    }
                }
            }
        }
        Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
        bitmap.setPixels(pixels, 0, w, 0, 0, w, h);
        return bitmap;
    } catch (WriterException e) {
        e.printStackTrace();
    }
    return null;
}
Also used : Bitmap(android.graphics.Bitmap) BinaryBitmap(com.google.zxing.BinaryBitmap) QRCodeWriter(com.google.zxing.qrcode.QRCodeWriter) EncodeHintType(com.google.zxing.EncodeHintType) Hashtable(java.util.Hashtable) BitMatrix(com.google.zxing.common.BitMatrix) WriterException(com.google.zxing.WriterException)

Example 5 with EncodeHintType

use of com.google.zxing.EncodeHintType in project android-zxingLibrary by yipianfengye.

the class EncodingHandler method createQRCode.

public static Bitmap createQRCode(String str, int widthAndHeight) throws WriterException {
    Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
    hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
    BitMatrix matrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight);
    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] = BLACK;
            }
        }
    }
    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
    return bitmap;
}
Also used : Bitmap(android.graphics.Bitmap) EncodeHintType(com.google.zxing.EncodeHintType) MultiFormatWriter(com.google.zxing.MultiFormatWriter) Hashtable(java.util.Hashtable) BitMatrix(com.google.zxing.common.BitMatrix)

Aggregations

EncodeHintType (com.google.zxing.EncodeHintType)25 BitMatrix (com.google.zxing.common.BitMatrix)23 Bitmap (android.graphics.Bitmap)13 QRCodeWriter (com.google.zxing.qrcode.QRCodeWriter)11 Hashtable (java.util.Hashtable)9 EnumMap (java.util.EnumMap)8 MultiFormatWriter (com.google.zxing.MultiFormatWriter)7 WriterException (com.google.zxing.WriterException)7 Test (org.junit.Test)5 BufferedImage (java.awt.image.BufferedImage)3 HashMap (java.util.HashMap)3 BinaryBitmap (com.google.zxing.BinaryBitmap)2 SymbolShapeHint (com.google.zxing.datamatrix.encoder.SymbolShapeHint)2 FileOutputStream (java.io.FileOutputStream)2 IOException (java.io.IOException)2 Matrix (android.graphics.Matrix)1 JCommander (com.beust.jcommander.JCommander)1 Throwables (com.google.common.base.Throwables)1 BarcodeFormat (com.google.zxing.BarcodeFormat)1 ResultPoint (com.google.zxing.ResultPoint)1