zxing白边java_ZXing生成无白边条形码
参考连接中的代码作了简化,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生成无白边条形码相关推荐
- android zxing生成条形码,用zxing生成没有白边的条形码
阅读上方源码解析后得到思路: 白边的大小: int leftPadding = (outputWidth - (inputWidth * multiple)) / 2; 要让leftpadding为0 ...
- 使用Zxing玩转二维码白边的各个花样
现在在实际应用中使用的最为广泛的二维码生成工具就是Zxing库,本文以Zxing-1.60版本做的研究分析,获取最新版本的Zxing. 1.生成二维码 简单介绍一下Zxing二维码库的使用方式,Zxi ...
- 页面整体居中 左右出现白边html,html2canvas生成图片出现白边儿的解决方法
将页面上的内容生成图片,并显示到弹出层中: 不废话,解决方法主要是再js中,html2canvas 方法中,全部拷贝过去就能用 html // 需要生成图片的内容区域 生成图片 分享给朋友 长按图片保 ...
- C语言运行时电脑白屏怎么办,win10电脑白屏死机无响怎么回事_win10电脑白屏死机无响七种解决方法...
win10专业版使用一段时间后出现白屏死机的问题,开机后不是登录界面,而是白色屏幕,尝试多次还是一样,怎么办呢?此故障原因无非是硬件或软件两大原因,有什么办法解决呢?此文小编告诉大家解决win10电脑 ...
- Visio导出无边框无白边PDF,绝对可靠!
Visio导出无边框无白边PDF,绝对可靠! 我前两天用Visio画图,都是导出PDF后,再用PDFCrop网站裁边,蠢的很! 后面搜一下,看看应该有简易方法,果然! 大佬博客链接 进入Visio里面 ...
- matlab 图像去白边,Matlab生成的图片如何去掉白边?
在用matlab中的figure命令生成图片时,我们会发现图片没有"占满"整个窗口(如图1), 图1(图片未占满窗口) 这种情况下利用Edit-Copy Figure命令截图时所得 ...
- zxing 二维码生成深度定制
二维码生成服务之深度定制 之前写了一篇二维码服务定制的博文,现在则在之前的基础上,再进一步,花样的实现深度定制的需求,我们的目标是二维码上的一切都是可以由用户来随意指定 设计 1. 技术相关 zxin ...
- android splash白屏_解决Splash白屏黑屏问题
当系统启动一个App时,zygote进程会首先创建一个新的进程去运行这个App,但是进程的创建是需要时间的,在创建完成之前,界面是呈现假死状态的,这极大地降低了用户体验,Android需要及时做出反馈 ...
- 按要求自动生成无向/有向图(基于C++实现)
按照要求自动生成无向/有向图(基于C++实现) 最小连通子图生成算法 程序的思路和伪代码 主函数代码 程序运行结果展示 本文内容是按照图的类型(随机有向图 无向连通图.节点个数N.边个数M.以及边的权 ...
最新文章
- 程序员的自我修养--链接、装载与库笔记:内存
- 部署和调优 1.5 vsftp部署和优化-1
- Qt for ios 打开相机(添加权限)
- COVID-19 肺炎疫情数据实时监控(python 爬虫 + pyecharts 数据可视化 + wordcloud 词云图)
- c语言逃跑的蠕虫函数,源码指标:穿越5线 第一时间吃鱼身 上行末端逃跑 没有未来函数 通达信幅图 精品公式...
- 解决wordcloud显示中文为空格(空白)
- qml入门学习(四):附加信号Component.onCompleted和Component.onDestruction
- Java学习笔记之方法
- 查询各个商品分类中各有多少商品的SQL语句
- python常见错误解决路线图
- enumerate取下标
- 蓝桥杯2021年第十二届C++省赛第三题-直线
- Waymo已经开始绘制亚特兰大地图数据,自动驾驶汽车路测地点又添新城
- 将yolov4的权重文件转换为wts文件
- python小白系列1
- 论文书写之如何引用参考文献(简单明了)
- 职场丨一年前我月薪两万被叫老总,如今在美团送外卖
- 管理员才可以运行的:chkdsk:磁盘管理 sfc /scannow检测系统文件
- 致:视频监控、车载导航的用户,听说你想买张流量卡?
- 【C++算法题】求三角形边长
热门文章
- 服务器网卡进系统不亮,RH2288H v2服务器网卡指示灯不亮处理方法
- 广州IATF16949认证_广州IATF16949咨询_8.3.3.3特殊特性
- 9.1资源(2020.4.6更新)
- 解析las文件_LAS 数据集文件结构
- JavaScript 编码练习:利用一个按钮实现开始计时和停止计时
- 大数据催生智慧园区_基于人工智能的智慧园区异构设备统一接入方法与流程
- pod:Kubernetes(k8s)创建pod的两种方式
- Node npm包管理器介绍
- ZBrush大师教你如何去做骨骼建模
- 最新IGS MGEX测站数据选择及下载详细教程(附IGS登录方法)