使用zxing 生成二维码,margin 设置为0。但是还存在内边距,网上有很多的处理办法都是在zxing源码的基础上操作.实践意义不大!
/**
* 裁剪图片
*
* @param bufferedImage 原始图片
* @return java.awt.image.BufferedImage
*/
public static BufferedImage cropImage(BufferedImage bufferedImage) {
/*
* 原始的二维码图片无论怎么设置都是有内边距的,但是二维码是双色图,最外部的就是需要切剪掉的颜色。所以我们取到x,y 轴 = 0的第一个色值
* 然后逐次循环到左上方码眼位置。这个码眼位置就是我们需要切割的起始位置。x,y轴循环的次数就是我们需要切割的图片的宽高的二分之一。
*
* 我们的二维码创建都是正方形的,这里也有好处,省略了计算不同宽高的复杂过程
* 【描述纯属抽象,example for this !】
*/
int cropColor = bufferedImage.getRGB(0, 0);
int width = 0, height = 0;
label:
for (int i = 0; i < bufferedImage.getWidth(); i++) {
for (int j = 0; j < bufferedImage.getHeight(); j++) {
if (bufferedImage.getRGB(i, j) != cropColor) {
width = i;