Java裁剪不同分辨率图像的特定部分

问题描述 投票:0回答:1

我希望通过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();
    }           

如您所见,高度不是问题,但宽度是因为不同的分辨率

所以我的问题是如何获得所有图像的特定部分

java image crop
1个回答
0
投票

考虑您想要的图像数量作为整个图像的一部分。如果你想要水平图像的中间50%,无论分辨率如何,这都可以工作:

    BufferedImage SubImgage = originalImgage.getSubimage((originalImgage.getWidth()/4), originalImgage.getHeight() - 70, originalImage.getWidth()/2, 70);
    System.out.println("" + (originalImgage.getWidth()/2 - 700));
© www.soinside.com 2019 - 2024. All rights reserved.