我想制作一张屏幕截图,然后滚动并再次制作屏幕截图,然后将这两个图像合并为一个,但忽略相同的元素。
我知道如何在java中合并两个图像,但不知道如何忽略相等的部分。
public static BufferedImage joinBufferedImage(BufferedImage img1,BufferedImage img2) {
//do some calculate first
int offset = 5;
int wid = img1.getWidth()+img2.getWidth()+offset;
int height = Math.max(img1.getHeight(),img2.getHeight())+offset;
//create a new buffer and draw two image into the new image
BufferedImage newImage = new BufferedImage(wid,height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = newImage.createGraphics();
Color oldColor = g2.getColor();
//fill background
g2.setPaint(Color.WHITE);
g2.fillRect(0, 0, wid, height);
//draw image
g2.setColor(oldColor);
g2.drawImage(img1, null, 0, 0);
g2.drawImage(img2, null, img1.getWidth()+offset, 0);
g2.dispose();
return newImage;
}
最佳答案
你想做的事情叫做拼接。
我建议使用一些支持拼接的库,例如 OpenCV。 OpenCV 有一个 Java 端口,如果您搜索“OpenCV stitcher”之类的内容,您会发现大量教程
关于java - 如何合并两个图像但忽略相同的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32134561/