资源简介
内网通刷积分代码,适合3.4.3044版本,大于此版本的不保证成功。
代码片段和文件信息
package test;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import com.google.zxing.LuminanceSource;
public final class BufferedImageLuminanceSource extends LuminanceSource {
private final BufferedImage image;
private final int left;
private final int top;
public BufferedImageLuminanceSource(BufferedImage image) {
this(image 0 0 image.getWidth() image.getHeight());
}
public BufferedImageLuminanceSource(BufferedImage image int left int top int width int height) {
super(width height);
int sourceWidth = image.getWidth();
int sourceHeight = image.getHeight();
if (left + width > sourceWidth || top + height > sourceHeight) {
throw new IllegalArgumentException(“Crop rectangle does not fit within image data.“);
}
for (int y = top; y < top + height; y++) {
for (int x = left; x < left + width; x++) {
if ((image.getRGB(x y) & 0xFF000000) == 0) {
image.setRGB(x y 0xFFFFFFFF);
}
}
}
this.image = new BufferedImage(sourceWidth sourceHeight BufferedImage.TYPE_BYTE_GRAY);
this.image.getGraphics().drawImage(image 0 0 null);
this.left = left;
this.top = top;
}
@Override
public byte[] getRow(int y byte[] row) {
if (y < 0 || y >= getHeight()) {
throw new IllegalArgumentException(“Requested row is outside the image: “ + y);
}
int width = getWidth();
if (row == null || row.length < width) {
row = new byte[width];
}
image.getRaster().getDataElements(left top + y width 1 row);
return row;
}
@Override
public byte[] getMatrix() {
int width = getWidth();
int height = getHeight();
int area = width * height;
byte[] matrix = new byte[area];
image.getRaster().getDataElements(left top width height matrix);
return matrix;
}
@Override
public boolean isCropSupported() {
return true;
}
@Override
public LuminanceSource crop(int left int top int width int height) {
return new BufferedImageLuminanceSource(image this.left + left this.top + top width height);
}
@Override
public boolean isRotateSupported() {
return true;
}
@Override
public LuminanceSource rotateCounterClockwise() {
int sourceWidth = image.getWidth();
int sourceHeight = image.getHeight();
AffineTransform transform = new AffineTransform(0.0 -1.0 1.0 0.0 0.0 sourceWidth);
BufferedImage rotatedImage = new BufferedImage(sourceHeight sourceWidth BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g = rotatedImage.createGraphics();
g.drawImage(image transform null);
g.dispose();
int width = getWidth();
return new BufferedImageLuminanceSource(rotatedImage top sourceWidth - (left + width) getHeight() width);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2795 2019-02-20 09:16 BufferedImageLuminanceSource.java
文件 543115 2019-02-20 08:54 core-3.3.3.jar
文件 477658 2019-02-20 16:45 fastjson-1.2.33.jar
文件 4766 2019-03-26 19:48 MyQRCode.java
文件 436 2019-03-26 19:56 readme.txt
- 上一篇:java开发实战1200例1_2卷及源代码
- 下一篇:java程序敏感词分析
评论
共有 条评论