gpt4 book ai didi

java - 将缓冲图像按行和列存储在新的缓冲图像中

转载 作者:行者123 更新时间:2023-12-01 14:17:52 26 4
gpt4 key购买 nike

我有一个名为 bfi1 的缓冲图像,我想将其存储在名为 bfi2 的新缓冲图像中。但 bfi2 不应该只是一个克隆,它必须包含原始 bfi1 的多行和多列。

如果不够清楚,请向我提问。

最佳答案

这是一个示例代码,也许会对您有所帮助。它拍摄 500x500 的桌面屏幕截图,将其加倍并将其保存在文件中。

import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.awt.image.WritableRaster;
import java.io.File;

import javax.imageio.ImageIO;



public class Test {

private static final int WIDTH = 500;
private static final int HEIGHT = 500;
private static final int DOUBLE_HEIGHT = 1000;

public static void main(String[] args) {
try {
Robot robot = new Robot();
Rectangle captureSize = new Rectangle(0, 0, WIDTH, HEIGHT);
BufferedImage image = robot.createScreenCapture(captureSize);

int[] src = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
int[] dst = new int[src.length * 2];
System.arraycopy(src, 0, dst, 0, src.length);
System.arraycopy(src, 0, dst, src.length, src.length);

WritableRaster wr = image.copyData(null).createCompatibleWritableRaster(0, 0, HEIGHT, DOUBLE_HEIGHT);

for (int i = 0; i < wr.getNumBands(); i++) {
wr.setSamples(0, 0, HEIGHT, DOUBLE_HEIGHT, i, dst);
}

BufferedImage doubleImage = new BufferedImage(image.getColorModel(), wr, false, null);

ImageIO.write(doubleImage, "bmp", new File("D:/doubleImage.bmp"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

关于java - 将缓冲图像按行和列存储在新的缓冲图像中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17943603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com