参考连接中的代码作了简化,StrToBrCode.class直接用

package de.safetytaxfree.tuishuibaoshangmiprinter.Printer;

import android.graphics.Bitmap;

import android.text.TextUtils;

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.oned.Code128Writer;

import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.util.HashMap;

import java.util.Map;

public class StrToBrCode {

/**

@param expectWidth 期望的宽度

@param maxWidth 最大允许宽度

* @param contents 生成条形码的内容

* @param height

* @return

*/

public static Bitmap getBarCodeWithoutPadding(int expectWidth,int maxWidth,int height,String contents){

int realWidth = getBarCodeNoPaddingWidth(expectWidth,contents,maxWidth);

return syncEncodeBarcode(contents, realWidth, height,0);

}

private static int getBarCodeNoPaddingWidth(int expectWidth,String contents,int maxWidth){

boolean[] code = new Code128Writer(). encode(contents);

int inputWidth = code.length;

//code:210000000000000082 code.length:134 expectWidth:397 maxWidth:435

// Add quiet zone on both sides.

//int fullWidth = inputWidth + 0;

double outputWidth = (double) Math.max(expectWidth, inputWidth);

double multiple = outputWidth / inputWidth;

//multiple:2.962686567164179

//优先取大的

int returnVal =0;

int ceil = (int) Math.ceil(multiple);

if(inputWidth * ceil <= maxWidth){

returnVal = inputWidth * ceil;

}else {

int floor = (int) Math.floor(multiple);

returnVal = inputWidth * floor;

}

return returnVal;

}

/**

* 同步创建条形码图片

*

* @param content 要生成条形码包含的内容

* @param width 条形码的宽度,单位px

* @param height 条形码的高度,单位px

* @param textSize 字体大小,单位px,如果等于0则不在底部绘制文字

* @return 返回生成条形的位图

*

* 白边问题:

* https://blog.csdn.net/sunshinwong/article/details/50156017

*已知高度,计算宽度:

*

*/

private static Bitmap syncEncodeBarcode(String content, int width, int height, int textSize) {

if (TextUtils.isEmpty(content)) {

return null;

}

Map hints = new HashMap<>();

hints.put(EncodeHintType.CHARACTER_SET, "utf-8");

hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);

hints.put(EncodeHintType.MARGIN, 0);

try {

BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.CODE_128, width, height, hints);

int[] pixels = new int[width * height];

for (int y = 0; y < height; y++) {

for (int x = 0; x < width; x++) {

if (bitMatrix.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.setPixels(pixels, 0, width, 0, 0, width, height);

if (textSize > 0) {

}

return bitmap;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

}

zxing白边java_ZXing生成无白边条形码相关推荐

  1. android zxing生成条形码,用zxing生成没有白边的条形码

    阅读上方源码解析后得到思路: 白边的大小: int leftPadding = (outputWidth - (inputWidth * multiple)) / 2; 要让leftpadding为0 ...

  2. 使用Zxing玩转二维码白边的各个花样

    现在在实际应用中使用的最为广泛的二维码生成工具就是Zxing库,本文以Zxing-1.60版本做的研究分析,获取最新版本的Zxing. 1.生成二维码 简单介绍一下Zxing二维码库的使用方式,Zxi ...

  3. 页面整体居中 左右出现白边html,html2canvas生成图片出现白边儿的解决方法

    将页面上的内容生成图片,并显示到弹出层中: 不废话,解决方法主要是再js中,html2canvas 方法中,全部拷贝过去就能用 html // 需要生成图片的内容区域 生成图片 分享给朋友 长按图片保 ...

  4. C语言运行时电脑白屏怎么办,win10电脑白屏死机无响怎么回事_win10电脑白屏死机无响七种解决方法...

    win10专业版使用一段时间后出现白屏死机的问题,开机后不是登录界面,而是白色屏幕,尝试多次还是一样,怎么办呢?此故障原因无非是硬件或软件两大原因,有什么办法解决呢?此文小编告诉大家解决win10电脑 ...

  5. Visio导出无边框无白边PDF,绝对可靠!

    Visio导出无边框无白边PDF,绝对可靠! 我前两天用Visio画图,都是导出PDF后,再用PDFCrop网站裁边,蠢的很! 后面搜一下,看看应该有简易方法,果然! 大佬博客链接 进入Visio里面 ...

  6. matlab 图像去白边,Matlab生成的图片如何去掉白边?

    在用matlab中的figure命令生成图片时,我们会发现图片没有"占满"整个窗口(如图1), 图1(图片未占满窗口) 这种情况下利用Edit-Copy Figure命令截图时所得 ...

  7. zxing 二维码生成深度定制

    二维码生成服务之深度定制 之前写了一篇二维码服务定制的博文,现在则在之前的基础上,再进一步,花样的实现深度定制的需求,我们的目标是二维码上的一切都是可以由用户来随意指定 设计 1. 技术相关 zxin ...

  8. android splash白屏_解决Splash白屏黑屏问题

    当系统启动一个App时,zygote进程会首先创建一个新的进程去运行这个App,但是进程的创建是需要时间的,在创建完成之前,界面是呈现假死状态的,这极大地降低了用户体验,Android需要及时做出反馈 ...

  9. 按要求自动生成无向/有向图(基于C++实现)

    按照要求自动生成无向/有向图(基于C++实现) 最小连通子图生成算法 程序的思路和伪代码 主函数代码 程序运行结果展示 本文内容是按照图的类型(随机有向图 无向连通图.节点个数N.边个数M.以及边的权 ...

最新文章

  1. 程序员的自我修养--链接、装载与库笔记:内存
  2. 部署和调优 1.5 vsftp部署和优化-1
  3. Qt for ios 打开相机(添加权限)
  4. COVID-19 肺炎疫情数据实时监控(python 爬虫 + pyecharts 数据可视化 + wordcloud 词云图)
  5. c语言逃跑的蠕虫函数,源码指标:穿越5线 第一时间吃鱼身 上行末端逃跑 没有未来函数 通达信幅图 精品公式...
  6. 解决wordcloud显示中文为空格(空白)
  7. qml入门学习(四):附加信号Component.onCompleted和Component.onDestruction
  8. Java学习笔记之方法
  9. 查询各个商品分类中各有多少商品的SQL语句
  10. python常见错误解决路线图
  11. enumerate取下标
  12. 蓝桥杯2021年第十二届C++省赛第三题-直线
  13. Waymo已经开始绘制亚特兰大地图数据,自动驾驶汽车路测地点又添新城
  14. 将yolov4的权重文件转换为wts文件
  15. python小白系列1
  16. 论文书写之如何引用参考文献(简单明了)
  17. 职场丨一年前我月薪两万被叫老总,如今在美团送外卖
  18. 管理员才可以运行的:chkdsk:磁盘管理 sfc /scannow检测系统文件
  19. 致:视频监控、车载导航的用户,听说你想买张流量卡?
  20. 【C++算法题】求三角形边长

热门文章

  1. 服务器网卡进系统不亮,RH2288H v2服务器网卡指示灯不亮处理方法
  2. 广州IATF16949认证_广州IATF16949咨询_8.3.3.3特殊特性
  3. 9.1资源(2020.4.6更新)
  4. 解析las文件_LAS 数据集文件结构
  5. JavaScript 编码练习:利用一个按钮实现开始计时和停止计时
  6. 大数据催生智慧园区_基于人工智能的智慧园区异构设备统一接入方法与流程
  7. pod:Kubernetes(k8s)创建pod的两种方式
  8. Node npm包管理器介绍
  9. ZBrush大师教你如何去做骨骼建模
  10. 最新IGS MGEX测站数据选择及下载详细教程(附IGS登录方法)