资源简介
实现思路:
1、获取图片的二值化字节数组 这一步是关键
2、将字节数组转为十六进制
3、压缩十六进制字符串 结尾为1、0或者与上一行相同的;相同的连续字符压缩
4、拼凑ZPL编码,宽度需要扩大,因为需要时8个点(1字节)的整数倍
代码片段和文件信息
package image;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.io.IOException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 在 erp中单独使用
* 实现思路:
* 1、获取图片的二值化字节数组 这一步是关键
* 2、将字节数组转为十六进制
* 3、压缩十六进制字符串 结尾为1、0或者与上一行相同的;相同的连续字符压缩
* 4、拼凑ZPL编码,宽度需要扩大,因为需要时8个点(1字节)的整数倍
* Created by guzy on 17/11/12.
*/
public class Image2Zpl {
static Pattern ZEROS=Pattern.compile(“0+$“)ONES=Pattern.compile(“1+$“)MULTI_W=Pattern.compile(“([0-9A-Z])\\1{2}“);
public static void main(String[] args) throws IOException {
System.out.println(“^XA“+image2Zpl(ImageIO.read(new URL(“http://jxc-storage.oss-cn-shanghai.aliyuncs.com/0cac85f28e42f6f811fc63b4067cae21.jpg“)))+“^XZ“);
}
public static String image2Zpl(BufferedImage image) {
//获取图片的字节数组
DataBufferByte data=(DataBufferByte) getBinaryGrayImage(image).getRaster().getDataBuffer();
byte[] imgData=data.getData();
int newW=(image.getWidth()+7)/8;//实际每行字节大小,8个点,每个点1位,共8位
String[] strs=byte2HexStr(imgDatanewW);
int bytes=imgData.length;
return String.format(“^XA^GFA%d%d%d%s^FS^XZ“ bytes bytes newW compress(strs));
}
/**
* 获取二值化图,并取反
* @param srcImage
* @return
*/
private static BufferedImage getBinaryGrayImage(BufferedImage srcImage) {
BufferedImage dstImage = new BufferedImage(srcImage.getWidth() srcImage.getHeight() BufferedImage.TYPE_BYTE_BINARY);
dstImage.getGraphics().drawImage(srcImage 0 0 null);
for (int y = 0; y < dstImage.getHeight(); y++) {
for (int x = 0; x < dstImage.getWidth(); x++) {
Color color = new Color(dstImage.getRGB(x y));
//获取该点的像素的RGB的颜色
Color newColor = new Color(255 - color.getRed() 255 - color.getGreen() 255 - color.getBlue());
dstImage.setRGB(x
- 上一篇:国密算法SM4加解密算法JAVA
- 下一篇:基于java开发的考勤管理系统
相关资源
- java-图片识别 图片比较
- 超级好的纯jsp写的聊天室
-
Java ba
se64编码和解码 - java图片轮播代码 可控制
- android图片压缩工具类分享
-
ba
se64Encode编码,jar包源代码打包 - Vue项目实现手机端上传图片,使用于
- Android图片上传头像裁切+原图原样
- 基于JavaWeb的美食图片分享网站.zip
- JAVA开发的中国象棋游戏包括源码和需
- JAVA飞机大战 ,附所有图片以及实验报
- im4java-ImageMagick图片压缩处理
- Java中使用 FreeMarker 生成pdf盖章合同文
- ajax上传图片
- JAVA连连看包括源码。图片等
- Android 完美实现图片圆角和圆形 bug修
- java 生成二维码 且中间 带图片(log
- 点九图片制作工具
- 基于JAVA技术爬虫爬网站图片设计与实
- emoji表情png图片
- Android-EasyShow3D一个基于OpenGLES的简单易
- 使用Java开发的OCR程序 根据图像识别转
- android拼图游戏完整源码,图片剪切,
- webView选择图片并上传
- 阿里巴巴JAVA编码规范详尽版
- creator实现调用android相机相册,并实现
- Android旋转专辑图片—仿留声机效果
- 哈夫曼压缩源码及两个样例
- eclipse --- Android拍照,相册选择图片以
- JAVA图片浏览器270361
评论
共有 条评论