最近要处理一些新闻中的广告图片,其中比较多的是含二维码的图片。简单写了3种逻辑处理了下(同源不同内容,同图片;含完整二维码的图片;残缺二维码广告图片),基本达到了实际需求。有同样需求的可以参考下,言归正传,今天看到有读者问java图像怎么转bitset,下面举例一些我的处理方法。
首先图片有不同来源,有的是url,那么url首先读取成BufferedImage
URL url_url = new URL(img_url);
Image image = null;
try
{
image = ImageIO.read(url_url);
} catch (Exception e)
{
e.printStackTrace();
}
BufferedImage buf = GetImage.toBufferedImage(image);
BufferedImage binatryBuf = BinaryTest.loaclTOBinatry(buf);
ImageData imagedata = BufferedImageHelper.bufferedImageToImageData(binatryBuf);
其中的imagedata是个model类,宽,高,和图像的bitset。
public class ImageData {
private BitSet bitSet;
private int width;
private int height;
public ImageData(BitSet bitSet, int width, int height) {
this.bitSet = bitSet;
this.width = width;
this.height = height;
}
public BitSet getBitSet() {
return bitSet;
}
public void setBitSet(BitSet bitSet) {
this.bitSet = bitSet;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
}
其中的GetImage.toBufferedImage(image)
public static BufferedImage toBufferedImage(Image image) {
if (image instanceof BufferedImage) {
return (BufferedImage)image;
}
image = new Imag