Java 裁剪不同分辨率图像的特定部分
Java crop specific part of different resolution images
我希望通过 java 获取图像的特定部分。
我有 11 张不同分辨率的图片。
如果我们以this为例图片
我要提取this部分
这是我的代码
try {
BufferedImage originalImgage = ImageIO.read(new File("bin\" + backImage[randNum]));
BufferedImage SubImgage = originalImgage.getSubimage((originalImgage.getWidth()/2) - 340 , originalImgage.getHeight() - 70, 700, 70);
System.out.println("" + (originalImgage.getWidth()/2 - 700));
ImageIO.write(SubImgage, "png", new File("bin\gauLock.png"));
} catch (IOException e) {
e.printStackTrace();
}
如你所见,高度不是问题,宽度是因为分辨率不同
所以我的问题是如何获取所有图像的特定部分
将您想要的图像数量考虑为整个图像的一小部分。如果你想要水平放置图像的中间 50%,无论分辨率如何,这都有效:
BufferedImage SubImgage = originalImgage.getSubimage((originalImgage.getWidth()/4), originalImgage.getHeight() - 70, originalImage.getWidth()/2, 70);
System.out.println("" + (originalImgage.getWidth()/2 - 700));
我希望通过 java 获取图像的特定部分。 我有 11 张不同分辨率的图片。
如果我们以this为例图片
我要提取this部分
这是我的代码
try {
BufferedImage originalImgage = ImageIO.read(new File("bin\" + backImage[randNum]));
BufferedImage SubImgage = originalImgage.getSubimage((originalImgage.getWidth()/2) - 340 , originalImgage.getHeight() - 70, 700, 70);
System.out.println("" + (originalImgage.getWidth()/2 - 700));
ImageIO.write(SubImgage, "png", new File("bin\gauLock.png"));
} catch (IOException e) {
e.printStackTrace();
}
如你所见,高度不是问题,宽度是因为分辨率不同
所以我的问题是如何获取所有图像的特定部分
将您想要的图像数量考虑为整个图像的一小部分。如果你想要水平放置图像的中间 50%,无论分辨率如何,这都有效:
BufferedImage SubImgage = originalImgage.getSubimage((originalImgage.getWidth()/4), originalImgage.getHeight() - 70, originalImage.getWidth()/2, 70);
System.out.println("" + (originalImgage.getWidth()/2 - 700));