java zxing2.2 生成了二维码,但是周围白色边框太宽了,如果缩小?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java zxing2.2 生成了二维码,但是周围白色边框太宽了,如果缩小?相关的知识,希望对你有一定的参考价值。
查资料有 EncodeHintType.MARGIN 设置 ,查看编码只有 CHARACTER_SET和ERROR_CORRECTION 设置,那个zxing版本有 EncodeHintType.MARGIN 设置呢?怎么破!!!
参考技术A Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.MARGIN, 1);
try
matrix = new MultiFormatWriter().encode(contents,
BarcodeFormat.QR_CODE, 300, 300, hints);
catch (WriterException e)
e.printStackTrace();
测试可以~本回答被提问者采纳 参考技术B jbarcode 这个库呢,能吗追问
这个是生成条形码的吗?
还是谢谢,已经找到可用的jar了。
java生成二维码
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public byte[] getBarcode(String code, Integer width, Integer height)
throws IOException
{
ImageControl ic = new ImageControl();
BufferedImage buf = ic.getBarcode(code, width, height);
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(buf, "jpg", os);
byte[] b = os.toByteArray();
return b;
}
public BufferedImage getBarcode(String str, Integer width, Integer height)
{
BufferedImage image = null;
try
{
Hashtable<EncodeHintType, String> hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
int black = -16777216;
int white = -1;
BitMatrix bitMatrix = new MultiFormatWriter().encode(str, BarcodeFormat.CODE_128, width.intValue(), height.intValue(), hints);
image = new BufferedImage(width.intValue(), height.intValue(), 12);
for (int x = 0; x < width.intValue(); x++) {
for (int y = 0; y < height.intValue(); y++) {
image.setRGB(x, y, bitMatrix.get(x, y) ? black : white);
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return image;
}
以上是关于java zxing2.2 生成了二维码,但是周围白色边框太宽了,如果缩小?的主要内容,如果未能解决你的问题,请参考以下文章
Java前后端分离项目生成二维码链接带中文参数遇到的问题及解决办法
Java前后端分离项目生成二维码链接带中文参数遇到的问题及解决办法