gpt4 book ai didi

java - 如何将图像分解为子图像?

转载 作者:行者123 更新时间:2023-11-30 10:44:49 25 4
gpt4 key购买 nike

用 java 编写的最短代码是什么,可以将图像(比如 200x1000)分解为 10 个高度为十分之一但宽度相同(200x 100)的图像?

我的代码很长;主要部分,我只是给出:

for (int i_=0;i_<10;i_++)
{
for(int k=i_*100;k<i_*100+h/10;k++)
{
for(int j_=0;j_<w;j_++)
{

int pixv=img.getRGB(j_,k);
r=(pixv>>16)&0xff;
g=(pixv>>8)&0xff;
b=(pixv)&0xff;
int rgb=new Color(r,g,b).getRGB();
img.setRGB(j_,k-i_*200,rgb);
}
}
// Here I am writing the img to a new .bmp file thus creating 10 seperate files
}

这里的 img 是一个 BufferedImage

w,h 大图的宽高

最佳答案

您可以使用 getSubimage(int x,int y,int w,int h) 从 BufferedImage 获取子图像。试试这个:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class NewClass9 {

public static void main(String[] args) throws IOException{
BufferedImage img = null;
img = ImageIO.read(new File("C:\\users\\uzochi\\desktop\\Penguins.jpg"));
for(int i = 0;i<10;i++){
BufferedImage sub = img.getSubimage(0, i*(img.getHeight()/10), img.getWidth(), img.getHeight()/10);
File f = new File("C:\\users\\uzochi\\desktop\\SubImage"+i+".png");
ImageIO.write(sub, "png", f);
}
}

关于java - 如何将图像分解为子图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37314579/

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