From be5735cca339b9f2e59f54dc788c9f1f192ed69f Mon Sep 17 00:00:00 2001 From: openerp Date: Mon, 12 Oct 2015 11:36:17 +0200 Subject: [PATCH] Add possibility to choose the error correction level for the encoding --- .../zxing/client/j2se/CommandLineEncoder.java | 17 +++++++++++++---- .../google/zxing/client/j2se/EncoderConfig.java | 8 ++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java b/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java index 8ffb36bb1..c4501c3cd 100644 --- a/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java +++ b/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java @@ -16,12 +16,16 @@ package com.google.zxing.client.j2se; -import com.beust.jcommander.JCommander; +import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.common.BitMatrix; +import com.beust.jcommander.JCommander; + import java.nio.file.Paths; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; /** * Command line utility for encoding barcodes. @@ -46,10 +50,15 @@ public final class CommandLineEncoder { if (EncoderConfig.DEFAULT_OUTPUT_FILE_BASE.equals(outFileString)) { outFileString += '.' + config.imageFormat.toLowerCase(Locale.ENGLISH); } - + Map hints = new HashMap<>(); + if (config.errorCorrectionLevel != null) { + hints.put(EncodeHintType.ERROR_CORRECTION, config.errorCorrectionLevel); + } BitMatrix matrix = new MultiFormatWriter().encode( - config.contents.get(0), config.barcodeFormat, config.width, config.height); - MatrixToImageWriter.writeToPath(matrix, config.imageFormat, Paths.get(outFileString)); + config.contents.get(0), config.barcodeFormat, config.width, + config.height, hints); + MatrixToImageWriter.writeToPath(matrix, config.imageFormat, + Paths.get(outFileString)); } } diff --git a/javase/src/main/java/com/google/zxing/client/j2se/EncoderConfig.java b/javase/src/main/java/com/google/zxing/client/j2se/EncoderConfig.java index 1b1605faa..f483d9d64 100644 --- a/javase/src/main/java/com/google/zxing/client/j2se/EncoderConfig.java +++ b/javase/src/main/java/com/google/zxing/client/j2se/EncoderConfig.java @@ -31,11 +31,11 @@ final class EncoderConfig { BarcodeFormat barcodeFormat = BarcodeFormat.QR_CODE; @Parameter(names = "--image_format", - description = "image output format, such as PNG, JPG, GIF") + description = "Image output format, such as PNG, JPG, GIF") String imageFormat = "PNG"; @Parameter(names = "--output", - description = " File to write to. Defaults to out.png") + description = "File to write to. Defaults to out.png") String outputFileBase = DEFAULT_OUTPUT_FILE_BASE; @Parameter(names = "--width", @@ -48,6 +48,10 @@ final class EncoderConfig { validateWith = PositiveInteger.class) int height = 300; + @Parameter(names = "--error_correction_level", + description = "Error correction level for the encoding") + String errorCorrectionLevel = null; + @Parameter(names = "--help", description = "Prints this help message", help = true)